我的web应用程序的用户界面主要是凭借着出色的Knockout.js建。 它示出了下IE7兼容模式在IE8一些布局错误。 我曾尝试加入meta标签强制标准模式,如下所示:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
然而,在IE9下的兼容性视图IE9(我必须承担一些用户已经设置)这个时候做淘汰赛的结合导致的错误:
DOM例外:INVALID_CHARACTER_ERR(5)
我发现很多参考,以在网络上此错误 - 做在DOM元素创建的方式 - 但显然我没有控制这个,淘汰赛是。
什么是一个强大的和最小哈克的方式来强制(或鼓励)IE的现在和未来所有版本的标准模式,这也与如何Knockout.js构建DOM兼容的呈现? 此外,任何人都可以阐述什么是Knockout.js这里做这IE9不喜欢? 非常感谢。
更新:
我隔离在我的标记至少一个问题。 我有一对单选按钮:
<input type="radio" data-bind="checked: Gender, attr: { name: 'gender-' + ID() }" value="@((int)Sex.Male)" />
<span>Male</span>
<input type="radio" data-bind="checked: Gender, attr: { name: 'gender-' + ID() }" value="@((int)Sex.Female)" />
<span>Female</span>
这对单选按钮的名称属性是“性别”加当前绑定的视图模型的ID被生成,如我与此对单选按钮的多个实例深层次结构。 因为我生成与淘汰赛的name属性,我不指定它针对的标记输入 - 当我还添加了一个手动的名称,如“乔”,这个正确的结合下,浏览器模式:“IE9兼容性视图” 。 所以,就好像当在兼容模式下,单选按钮被视为通过IE浏览器是无效的,因为它没有name属性。 但是,它的工作原理下的浏览器模式:“IE9”。
另外这个没有具体涉及到IE边缘meta标签,每当我切换到兼容性视图不管它会失败 - 但我的下一个问题是,为什么不说meta标签覆盖浏览器设置?