Jus*_*tin 8 javascript error-handling internet-explorer-6
我正在尝试理解我在Internet Explorer 6和Windows XP下运行的JavaScript密集型瘦客户端应用程序中看到的间歇性脚本错误.问题的根本原因是以下函数调用返回一个null
值(但是它确实成功而没有错误):
var doc = targetWindow.document.open("text/html","_replace");
Run Code Online (Sandbox Code Playgroud)
哪里targetWindow
是一个窗口对象.
既不是targetWindow
也不targetWindow.document
是null
,所以我很难理解为什么这个电话会回来null
.我对文档的解释是这个方法不应该返回null.
这段代码已经没有改变并且工作了很多年 - 直到我理解为什么会发生这种情况我不确定我是如何处理这个问题的,或者可能已经改变了什么导致这种情况开始发生.
什么可能导致此函数调用返回null?
根据文档,您应该传递“replace”,而不是“_replace”。试试这个:
var doc = targetWindow.document.open("text/html", "replace");
Run Code Online (Sandbox Code Playgroud)
既然你说你的代码已经工作了很多年,那么很可能有些东西已经改变了,上面的建议可能不是问题。不过,它仍然值得一试。
您最近是否更改了应用程序中使用的任何 js 文件/库?另外,您在页面中使用任何浏览器插件吗?其中任何一个的较新版本可能会以某种方式影响您对“document.open”的调用。