从另一个页面访问功能(IE11)
Access a function from another page (IE11)
我有一个打开子页面的父页面 (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'
使用单独的脚本:
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>
我找到了解决办法!非常简单:只需使用 var actions;
而不是 let actions;
来访问函数。 let
限制了范围,因此无法访问。
更多信息在这里:What's the difference between using "let" and "var"?
我有一个打开子页面的父页面 (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'
使用单独的脚本:
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>
我找到了解决办法!非常简单:只需使用 var actions;
而不是 let actions;
来访问函数。 let
限制了范围,因此无法访问。
更多信息在这里:What's the difference between using "let" and "var"?