首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在什么情况下,document.open()会返回null?

在什么情况下,document.open()会返回null?
EN

Stack Overflow用户
提问于 2011-09-07 00:17:25
回答 2查看 485关注 0票数 8

我正在尝试理解在Internet Explorer6和Windows XP下运行的JavaScript密集型瘦客户机应用程序中出现的间歇性脚本错误。问题的根本原因是下面的函数调用返回了一个null值(但是它确实成功了,没有出现错误):

代码语言:javascript
复制
var doc = targetWindow.document.open("text/html","_replace");

其中,targetWindow是一个window对象。

targetWindowtargetWindow.document都不是null,所以我很难理解为什么这个调用会返回null。我对the documentation的解释是这个方法永远不应该返回null。

这段代码多年来一直保持不变并完美运行--直到我理解了为什么会发生这种情况,我既不确定我该如何处理它,也不确定是什么原因导致了这种情况的发生。

什么可能会导致此函数调用返回null?

EN

回答 2

Stack Overflow用户

发布于 2011-09-08 10:48:09

根据文档,您应该传递"replace",而不是"_replace“。试着这样做:

代码语言:javascript
复制
var doc = targetWindow.document.open("text/html", "replace");

既然你说你的代码已经工作多年了,那么很可能是某些地方发生了变化,上面的建议可能不是问题所在。然而,它仍然值得一试。

您最近是否更改了应用程序中使用的任何js文件/库?此外,您是否在页面中使用任何浏览器插件?它们中的任何一个的更新版本都可能以某种方式影响您对"document.open“的调用。

票数 1
EN

Stack Overflow用户

发布于 2011-09-25 09:06:52

按照W3C标准,document.open()没有任何参数。请查看此链接:http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-72161170

我建议你使用W3C文档,而不是微软的文档,因为使用W3C你肯定它可以在所有现代浏览器上工作,而微软以添加扩展而闻名,当然,这些扩展只能在他们自己的产品中工作。它被称为EEE (拥抱、延伸和熄灭)。

只需使用不带参数的document.open()。有一些方法可以操纵用户历史,但这被称为糟糕的编程实践。历史是用户的私有数据,web应用程序不应该试图操纵它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7323021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档