从另一个页面访问功能(IE11)

时间:2019-04-08 07:56:12

标签: javascript internet-explorer-11 parent-child

我有一个打开子页面(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'

2 个答案:

答案 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"?