我打开了一个子窗口,然后使用
编写HTML等等childhandle.document.write(...)
工作得很好。 HTML包含ID' foo'的输入。 然后我试了
childhandle.document.addEventListener('DOMContentLoaded', function(event) { (document.getElementById('foo').value = 'bar'; });
这给出了一个TypeError。如果我将其更改为
,它会起作用childhandle.document.addEventListener('DOMContentLoaded', function(event) { (childhandle.document.getElementById('foo').value = 'bar'; });
似乎在版本1中,代码必须一直在寻找元素' foo'在父文档中。这看起来很奇怪 - 当然EventListener函数正在孩子的范围内运行? 有人能解释一下这里发生了什么吗?感谢。
答案 0 :(得分:1)
匿名回调函数在父窗口中定义,其中childhandle
已定义,document
引用父窗口文档,执行它不重要。
尝试使用this
来引用当前文档。
childhandle.document.addEventListener('DOMContentLoaded',
function(event) {
this.getElementById('foo').value = 'bar';
}
);