TDa*_*ver 6 javascript internet-explorer knockout.js
我尽可能地简化了我的问题.它只发生在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>
Run Code Online (Sandbox Code Playgroud)
我的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);
}
Run Code Online (Sandbox Code Playgroud)
我查了一下,数据到达initChild方法还好.
如果我在页面上绑定ANYTHING,我会HierarchyRequestError在applyBindings调用上得到一个.我的google-fu完全抛弃了我,我完全无能为力.
据我所知,这是这个问题的症状:在 IE 中使用跨单独窗口的 Javascript 对象
基本上,无论我如何将 ko 对象传递到子窗口,都会丢失一些东西,当我尝试应用绑定时,ko 本身会遇到 DOM 跟踪错误,并尝试将某些内容插入到不应该插入的位置(可能是部分内容)父 DOM 到子 DOM)。
解决方案有两个:
可怕的行为,IE...
如果有人能对为什么会发生这种情况提出实际解释,我会接受他的答案。
| 归档时间: |
|
| 查看次数: |
776 次 |
| 最近记录: |