Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
独立于平台的JavaScript:检查DOM是否存在_Javascript_Object_Window_Cross Platform_Document - Fatal编程技术网

独立于平台的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谢谢<代码>“”+此.文档是我正在搜索的。我正在做一个跨浏览器测试,以便进行更多的研究,因为没有机会在感谢中这样做<代码>“”+此.文档是我正在搜索的。我正在做一个跨浏览器的测试,以便进行更多的研究,因为现在还没有机会这样做