结合在Knockout.js错误IE9兼容性视图(Binding error in Knockout

2019-10-16 23:25发布

我的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标签覆盖浏览器设置?

Answer 1:

尝试包名称属性与报价。

 <input type="radio" data-bind="checked: Gender, attr: { 'name': 'gender-' + ID() }" value="@((int)Sex.Male)" /> 

检查在下面的评论查看回答详情



文章来源: Binding error in Knockout.js in IE9 Compatibility View