Prototype.js Element.update() 在 IE9 上抛出错误
我的代码如下所示:
var node = parent.insertRow(before);
node = $(node);
node.update('<td>Hello</td><td>Hello</td><td>Hello</td>');
它适用于 IE6、IE7、IE8、Chrome、Firefox、Safari(Mac 和 Windows),但不适用于 IE9。
IE9 抛出“DOM 异常:INVALID_CHARACTER_ERR (5)”并在prototype.js 的中间指向 e.setAttribute(c,f)。我使用的监视窗口将 c 显示为“{}”,这对我来说没有任何意义。
我正在使用 Scriptaculous 1.9.0,其中包括 Prototype 1.7,所有研究都表明它与 IE9 兼容。
我知道 IE 对表格有特殊要求,这就是我使用的原因 元素#update。
我做错了什么?
My code looks like:
var node = parent.insertRow(before);
node = $(node);
node.update('<td>Hello</td><td>Hello</td><td>Hello</td>');
It works on IE6, IE7, IE8, Chrome, Firefox, Safari (both Mac and Windows) but not IE9.
IE9 throws a "DOM Exception: INVALID_CHARACTER_ERR (5)" and points in the middle of prototype.js to e.setAttribute(c,f). I used the watch window which shows c as "{}" which doesn't make any sense to me.
I'm using Scriptaculous 1.9.0 which includes Prototype 1.7 which all research shows as IE9 compatible.
I know that IE has special requirements for tables which is why I use
a Element#update.
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果将方法添加到 Object.prototype,则可能需要使用 DefineProperty 使其不可枚举,以便 Element#update 能够在 IE9 上工作。当代码修改 Object.prototype 时,Element#update 很脆弱。
就我而言,一个库做了这样的事情:
我对 IE9 进行了特殊处理,如下所示:
If methods are added to Object.prototype, they may need to be made unenumerable using defineProperty for Element#update to work on IE9. Element#update is brittle when code modifies Object.prototype.
In my case, a library did something like this:
I special-cased IE9 to fix it like this: