我有一个文件上传器,用于new DataTransfer()
生成和显示上传图像的缩略图。对于Safari用户,不支持此构造函数。最棘手的部分是DataTransfer
作为一项功能的支持-这是专门不是构造函数。
如何检测此功能是否存在,以便file
为Safari用户提供标准输入?澄清一下,我不是在寻求后备方面的帮助-只是功能检测本身。
我尝试以下操作均无济于事:
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句