我正在尝试在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
有任何解决方法吗? 谢谢
答案 0 :(得分:1)
代替普通的javascript尝试在每个浏览器上都能正常运行的JQUERY,因此将选择器更改为jquery,您需要在文件中包含第一个JQUERY
答案 1 :(得分:1)
我认为这是层次结构访问限制。由于元素与您使用的window
不在同一个Object
中,因此该元素无权访问该对象的信息。如果您尝试附加由主文档创建的元素,然后尝试将其附加到iframe文档,则会遇到类似的问题。尝试此操作时,您会得到HierarchyRequestError
。
使用iframe window
的{{1}}代替主要的Object
的{{1}}:
window