knockoutjsforeach在IE 9中不起作用
knockoutjs foreach not working in IE 9
这是一个模拟聊天的简单应用程序。我提供jsfiddle:
http://jsfiddle.net/LkqTU/2785/
一些消息来自服务器,由按钮模拟,用户在绑定到keypress事件的文本区域上键入,以获取输入键并发送消息。
嗯,这在Chrome和Firefox中运行良好,但在IE9中失败了。
可能出了什么问题?
感谢
找到错误相对容易:在Model函数的开头将this
分配给名为self
的外部变量看起来不太正确。
解释为什么它在Chrome和Firefox中运行良好,但在IE中失败,要有趣得多。显然,无变量self
指的是window.self
,这实际上是window
对象的一个特殊属性——对…window
本身(MDN)的引用。
Internet Explorer实际上以其对该属性的特殊处理而闻名:而在其他浏览器中,window === window.self
的计算结果为true
,在IE中为false
。我不会说IE做这件事没有任何理由;有关详细信息,请查看此讨论。
具有讽刺意味的是,在这个特殊的例子中,IE变成了半英雄。)我说"英雄",因为IE是唯一不让你覆盖window.self
的浏览器。其他人都不那么挑剔;在脚本末尾添加console.log(window.self)
,见证他们的耻辱。)
我说"一半",因为IE可以更。。。与其默默地忽略window.self = ...
行(并以稍微不同的方式为使用被忽略赋值的远行抛出错误),IE为什么不提前发出警告呢?该死,即使是通知也行。
不管怎样。很容易不依赖IE的零星英雄主义:只需在脚本开头添加'use strict'
行,瞧!Chrome和Firefox都会在其所属位置(self = this
行)发出"引用错误"警告。)
是的,我知道"严格使用"并不是一个简单的步骤,它可能会破坏一些脚本;然而,我完全支持尼古拉斯·扎卡斯关于该主题的声明。
- window.opener.document在ie中不起作用
- 为什么Telerik cdn在IE中不起作用
- JQuery脚本在IE中不起作用
- 默认光标在IE和Mozilla中不起作用
- Asp自定义验证器在IE-11中不起作用
- knockoutjsforeach在IE 9中不起作用
- 谷歌分析在IE中不起作用
- javascript中的SVG转换在IE 11中不起作用
- 用于播放背景音乐的嵌入式flash播放器在IE浏览器中不起作用
- 在IE中切换javascript不起作用的复选框
- JQuery日期选择器在IE 7上不起作用
- HTML表单在IE中不起作用
- Javascript style.background在IE中不起作用
- 对<asp:IE 10的TextBox;不起作用
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- SPA异步调用在IE 11中不起作用
- 脚本在IE 9中不起作用
- ng-单击在IE中不起作用的选项选择Angularjs
- html2canvas 代码不起作用 IE 11
- 隐藏选项不起作用IE