gpt4 book ai didi

fine-uploader - 必须稍微更改 isInput 方法才能在 ie8 中提交文件

转载 作者:行者123 更新时间:2023-12-02 05:00:18 33 4
gpt4 key购买 nike

为了在 ie8 中选择文件,我必须将 isInput 函数的第二个语句设为 if 而不是 else if。

qq.isInput = function(maybeInput) {
if (window.HTMLInputElement) {
if (Object.prototype.toString.call(maybeInput) === '[object HTMLInputElement]') {
if (maybeInput.type && maybeInput.type.toLowerCase() === 'file') {
return true;
}
}
}
//else if (maybeInput.tagName) {
if (maybeInput.tagName) {
if (maybeInput.tagName.toLowerCase() === 'input') {
if (maybeInput.type && maybeInput.type.toLowerCase() === 'file') {
return true;
}
}
}

return false;
};

这种变化有意义吗?还是会破坏其他东西?

当我在 ie8 中调试 javascript 时,该函数成功通过了“window.HTMLInputElement”检查,但未能通过“Object.prototype.toString.call(maybeInput) === '[object HTMLInputElement]'”检查。

IE8 Win XP SP3

最佳答案

3.6.3 修补程序版本刚刚上线,解决了 this issue .

这是我修改代码以处理涉及多个窗口的环境时产生的又一次回归。

Fine Uploader 在 IE8 中被破坏,特别是由于 IE8 不遵循的某些(恕我直言)声音逻辑。 qq.isInput首先检查window是否有HTMLInputElement“接口(interface)”的概念。如果是这样,它期望在参数上调用 toString 时(使用 Object.prototype.toString),任何输入元素都将具有“[object HTMLInputElement]”的值。显然,IE8 不支持这个逻辑,因为值为“[object Object]”。

IE7 中存在相同的错误/不一致的逻辑(在宿主对象上调用 toString 时),但这个特定问题在 IE7 中不是问题,因为 IE7 不公开 HTMLInputElement “接口(interface)”,因此,我们直接跳到下一个检查,该检查更接近潜在的宿主对象,试图在 不存在的情况下将其识别为输入元素HTMLInputElement 接口(interface)。

关于fine-uploader - 必须稍微更改 isInput 方法才能在 ie8 中提交文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16944841/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com