我有一个打开子页面(IE11)的父页面。
我想向父页面添加一些控件,以触发子页面中的某些功能。
这是父页面的内容(简体):
<script>
let newWindow = window.open('cannon.htm','Picture Display', 'width=780, height=520');
</script>
<button onclick="newWindow.actions.sayHello()">Say</button>
这是子页面的内容(简体):
let actions;
window.addEventListener('load', function() {
actions = (function() {
return {
sayHello: function() {
console.log("hello");
}
}
})();
});
这将引发错误。为什么?我该如何运作?
错误:无法获取未定义或空引用的属性'sayHello'
答案 0 :(得分:0)
使用单独的脚本:
cannon.js
:
let actions;
window.addEventListener('load', function() {
actions = (function() {
return {
sayHello: function() {
console.log("hello");
}
}
})();
});
cannon.htm
:
<script src="cannon.js"></script>
父页面(index.html
):
<script src="cannon.js"></script>
答案 1 :(得分:0)
我找到了解决方案!非常简单:只需使用var actions;
而不是let actions;
来访问函数。 let
限制了范围,因此无法访问。
此处有更多信息:What's the difference between using "let" and "var"?