gpt4 book ai didi

javascript - IE 10 + KnockoutJS = HierarchyRequestError?

转载 作者:数据小太阳 更新时间:2023-10-29 05:30:05 25 4
gpt4 key购买 nike

我已经尽可能地简化了我的问题。它仅发生在 Internet Explorer 中(已确认 9 和 10)。我有一个用这个呈现的页面:

<html>
<body>

<span data-bind="text:$data[0].Mileage"></span>
<script type="text/javascript">
window.initChild = function (ko, viewModel) {
window.ko = ko;
ko.applyBindings(viewModel, document.body);
}
</script>
</body>
</html>

我的 SPA 电话

    var otherWindow = window.open('myurl', '_blank');
var handler = function () {
otherWindow.initChild(ko, report);
};
if (otherWindow.addEventListener) {
otherWindow.addEventListener('load', handler, false);
} else if (otherWindow.attachEvent) {
otherWindow.attachEvent('onload', handler);
}

我检查过,数据到达initChild方法没问题。

如果我在页面上绑定(bind)任何东西,我会在 applyBindings 调用上收到 HierarchyRequestError。我的 google-fu 完全放弃了我,我完全不知道出了什么问题。

最佳答案

据我所知,这是这个问题的症状:Using Javascript objects across separate windows in IE

基本上,无论我如何将 ko 对象传递给子窗口,某些东西 都丢失了,当我尝试应用绑定(bind)时,ko 本身遇到了 DOM 跟踪错误,并试图插入一些东西到它不应该有的地方(可能是父 DOM 到子 DOM 的一部分)。

解决方案有两个:

  • 将 ko(和 ko.mapping)脚本添加到子窗口,使其拥有自己的 ko 对象
  • 使用 ko.mapping 将模型序列化为 JSON,将字符串传递给子窗口并反序列化。

糟糕的行为,IE...

如果有人能就为什么会发生这种情况提出实际解释,我会接受他的回答。

关于javascript - IE 10 + KnockoutJS = HierarchyRequestError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18150604/

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