gpt4 book ai didi

javascript - knockoutjs foreach 在 IE 9 中不工作

转载 作者:行者123 更新时间:2023-11-30 18:19:59 24 4
gpt4 key购买 nike

这是一个模拟聊天的简单应用。我提供 jsfiddle:

http://jsfiddle.net/LkqTU/2785/

一些消息来自服务器,由按钮模拟,用户在绑定(bind)到按键事件的文本区域上键入以获取回车键并发送消息。

好吧,这在 Chrome 和 Firefox 中工作正常,但在 IE9 中失败。

有什么问题吗?

谢谢

最佳答案

好吧,定位错误相对容易:在 Model 函数的开头将 this 分配给名为 self 的外部变量看起来并不正确。

为什么它在 Chrome 和 Firefox 中运行良好,但在 IE 中失败的解释更有趣。很明显varless self指的是window.self,它其实是window对象的一个​​特殊属性——引用... window 本身(MDN)。

Internet Explorer 实际上以其对该属性的特殊处理而闻名:而在其他浏览器中 window === window.self 的计算结果为 true,在 IE 中它是错误。而且我不会说 IE 没有任何理由就这样做;检查这个discussion一些细节。

具有讽刺意味的是,在这个特定的例子中,IE 竟然是一个半英雄。 ) 我说“英雄”,因为 IE 是唯一不允许您覆盖 window.self 的浏览器。其他人都不那么挑剔。将 console.log(window.self) 添加到脚本末尾以见证他们的耻辱。 )

我说的是“一半”,因为 IE 可能会更……英勇。 ) 而不是默默地忽略 window.self = ... 行(并以稍微不同的方式为使用忽略赋值的那条遥远的行抛出错误),为什么 IE 不直接给出一个预先警告?该死的,即使是通知也可以。

无论如何。很容易不依赖 IE 的零星英雄主义来做这些事情:只需在脚本开头添加 'use strict' 行,瞧! Chrome 和 Firefox 都会在它所属的位置发出“引用错误”警告 - 在 self = this 行。 )

是的,我知道“严格使用”不是一个简单的步骤,它可能会破坏一些脚本;但我完全支持 Nicholas Zakas 的 statement关于那个话题

关于javascript - knockoutjs foreach 在 IE 9 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291055/

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