'文档'在子窗口中意外地引用了父窗口
'document' within a child window unexpectedly refers to parent
我打开了一个子窗口,然后用在上面写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'; });
似乎在版本一中,代码一定在父文档中查找元素"foo"。这似乎很奇怪——EventListener函数肯定是在子函数的作用域中运行的吗?有人能解释一下这里发生了什么吗?谢谢
匿名回调函数是在父窗口中定义的,其中定义了childhandle
,其中document
指的是父窗口文档,在哪里执行并不重要
请尝试使用this
引用当前文档。
childhandle.document.addEventListener('DOMContentLoaded',
function(event) {
this.getElementById('foo').value = 'bar';
}
);
相关文章:
- '文档'在子窗口中意外地引用了父窗口
- 为什么当我尝试将函数绑定到自身时,“this”对象仍然引用窗口
- 为什么根据括号的位置来引用窗口或对象?并返回undefined
- 如何在启动之前引用javascript窗口元素
- 为流星重新包装砌体会产生错误“引用错误:窗口未定义”
- 我应该使用 self 还是窗口来引用全局范围
- Ace 编辑器:未捕获的引用错误:窗口未定义
- 重定义对最顶层窗口的引用 (window.top)
- 是否可以在窗口属性上捕获未定义的引用
- 流星.js:引用错误:窗口未定义
- 无法获取未定义或空引用的属性“内容窗口”
- 如何关闭我的弹出窗口并保持在引用页面上的同一位置
- HTML5 postMessage没有窗口引用
- 如何在cookie中存储窗口引用
- 在GWT中使用第三方javascript库(带窗口引用)
- 如何将标签附加到窗口引用
- Extjs从新窗口引用父窗口
- 从具有目标"_blank"的窗体中获取窗口引用
- 在窗口引用上使用JQuery
- 将表单提交到新窗口>显示pdf>父窗口将丢失子窗口引用