gpt4 book ai didi

javascript - IE9 抛出 DOM 异常 : INVALID_CHARACTER_ERR (5)

转载 作者:数据小太阳 更新时间:2023-10-29 05:58:39 24 4
gpt4 key购买 nike

在下面的脚本中,IE9 会抛出一个错误:

SCRIPT5022:DOM 异常:INVALID_CHARACTER_ERR (5)mootools-1.2.1-core-yc.js,第 118 行字符 1

Document.implement({
newElement: function (A, B) {
if (Browser.Engine.trident && B) {
["name", "type", "checked"].each(function (C) {
if (!B[C]) {
return;
}
A += " " + C + '="' + B[C] + '"';
if (C != "checked") {
delete B[C];
}
});
A = "<" + A + ">";
}
return $.element(this.createElement(A)).set(B); //THIS IS LINE 118
},
newTextNode: function (A) {
return this.createTextNode(A);
},
getDocument: function () {
return this;
},
getWindow: function () {
return this.window;
}
});

此代码段是开发人员在网站上使用的 Mootools js 库的一部分。是否有解决 IE 错误的解决方法?

最佳答案

是的,代码是垃圾,你永远不应该那样做浏览器检查,它是在 JavaScript 101 中教授的......大声笑不能相信它在 mootools 中?好吧,无论如何

IE9 不允许疯狂 document.createElement('<div style="background:red">yay!</div>');不再使用语法(一开始就没有人真正使用过它……)

举个例子:

var d = document;
var x = d.createElement('div');

x.innerHTML = 'yay';
x.style.backgroundColor = 'red';
x.style.padding = '6px';
x.style.margin = '20px';

d.body.appendChild(x);

var sameHTML = '<div style="background:green;padding:6px;margin:20px;">yay!</div>';

// fails in IE > 8 and other browsers
try {
var y = d.createElement(sameHTML);
d.body.appendChild(y);
} catch (err) {
d.body.appendChild(d.createTextNode(err));
}

// quick fix using innerHTML:
var temp = d.createElement('div');
temp.innerHTML = sameHTML;
d.body.appendChild(temp.childNodes[0]);

解决这个问题的方法是创建一个虚拟元素并使用 .innerHTML然后提取子项,或在 mootools 中检查浏览器版本,不要为 IE > 8 这样做如果我没记错的话,mootools 有一个 Browser.Engine.version或类似的东西...

编辑:我觉得我还应该补充一点:Browser.Engine.trident是有问题的检查,从代码的本质来看,它也可能发生在其他地方......

啊哈!另一个更新:我在查看 [一个旧的] 支持线程时发现了这一点:

you'll need to update to 1.2.5 or 1.3. Previous MooTools versions are not supported by IE9.

所以对脚本的更新应该可以解决您的问题,希望它不会引入更多错误...您可以在这里获取:http://mootools.net/download ,您可能想尝试页面顶部的 1.2.5 版本,因为它的更改量最少...

祝你好运

关于javascript - IE9 抛出 DOM 异常 : INVALID_CHARACTER_ERR (5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941963/

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