无法访问IE中HTML元素的原型

时间:2018-07-13 18:15:42

标签: javascript html internet-explorer microsoft-edge

我正在尝试在open(link_here)(在同一域中)打开的窗口中填充文本区域。它在除IE / Edge之外的所有浏览器中都能正常工作。

在stackoverflow上重现的步骤:

 var w = open('https://stackoverflow.com'); // example
 // (allow popups and) wait for window to be opened, then:
 let input = w.document.getElementsByClassName('f-input js-search-field')[0]    
 const prototype = Object.getPrototypeOf(input); // returns null on IE/Edge

有任何解决方法吗? 谢谢

2 个答案:

答案 0 :(得分:1)

代替普通的javascript尝试在每个浏览器上都能正常运行的JQUERY,因此将选择器更改为jquery,您需要在文件中包含第一个JQUERY

答案 1 :(得分:1)

我认为这是层次结构访问限制。由于元素与您使用的window不在同一个Object中,因此该元素无权访问该对象的信息。如果您尝试附加由主文档创建的元素,然后尝试将其附加到iframe文档,则会遇到类似的问题。尝试此操作时,您会得到HierarchyRequestError

使用iframe window的{​​{1}}代替主要的Object的{​​{1}}:

window