如何解决如何确定浏览器是否支持DataTransfer构造函数?
我有一个文件上传器,它使用new DataTransfer()
生成并显示上传图像的缩略图。对于Safari用户,此构造函数为not supported。棘手的部分是支持DataTransfer
作为功能 -特别是不支持的构造函数。
如何检测此功能是否存在,以便为Safari用户提供标准的file
输入?要澄清的是,我不是在寻求后备方面的帮助-只是功能检测本身。
我尝试以下操作均无济于事:
const isConstructor = (func) => (func && typeof func === "function" && func.prototype && func.prototype.constructor) === func;
isConstructor(DataTransfer); //true in Safari
解决方法
我能够解决此问题,但是我有点不满意,但是有些古怪。我仍然会得到更好的答案。
let dataTransferConstructorSupported = false;
try { new DataTransfer(),dataTransferConstructorSupported = true } catch {}
console.log(dataTransferConstructorSupported);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。