独立于平台的JavaScript:检查DOM是否存在
(跨浏览器/平台)检查独立于平台的JavaScript:检查DOM是否存在,javascript,object,window,cross-platform,document,Javascript,Object,Window,Cross Platform,Document,(跨浏览器/平台)检查文档对象(必要时可能还有窗口对象)是否存在的最佳和最安全(不是最短/最快)解决方案是什么 浏览器中的窗口文档类型是否总是“对象”?或者,是否需要某种变通方法来确保我们收到的对象确实是DOM类型的对象,比如window.document instanceof window.document,而不仅仅是自制的对象或其他什么。您对“跨浏览器”的定义在这里非常粗略。实际上,我建议检查[[Class]]属性,如: Object.prototype.toString.call( roo
文档
对象(必要时可能还有窗口
对象)是否存在的最佳和最安全(不是最短/最快)解决方案是什么
浏览器中的窗口文档类型是否总是“对象”
?或者,是否需要某种变通方法来确保我们收到的对象确实是DOM类型的对象,比如window.document instanceof window.document
,而不仅仅是自制的对象或其他什么。您对“跨浏览器”的定义在这里非常粗略。实际上,我建议检查[[Class]]
属性,如:
Object.prototype.toString.call( root.document );
在现代浏览器中(或[对象未定义]
)应该返回[object HTMLDocument]
。为了将IE8+也包括在此列表中,我们需要
if( "" + this.document === '[object HTMLDocument]' ) { }
这将创建一个
- IE8+
- 铬
- 火狐
- 狩猎
- 歌剧(我不知道,但我想是的)
IE你对“跨浏览器”的定义在这里相当粗略。实际上,我建议检查[[Class]]
属性,如:
Object.prototype.toString.call( root.document );
在现代浏览器中(或[对象未定义]
)应该返回[object HTMLDocument]
。为了将IE8+也包括在此列表中,我们需要
if( "" + this.document === '[object HTMLDocument]' ) { }
这将创建一个
- IE8+
- 铬
- 火狐
- 狩猎
- 歌剧(我不知道,但我想是的)
你能详细说明你需要做什么,而不是你已经想到如何解决它吗?我个人认为,只有在无头浏览器或IDE中运行时,才能看到问题。你能详细说明你需要做什么,而不是你已经想到如何解决它吗?我个人只能看到一个问题,如果你运行在一个无头浏览器或IDE谢谢<代码>“”+此.文档是我正在搜索的。我正在做一个跨浏览器测试,以便进行更多的研究,因为没有机会在感谢中这样做<代码>“”+此.文档是我正在搜索的。我正在做一个跨浏览器的测试,以便进行更多的研究,因为现在还没有机会这样做