将javascript函数从父窗口传递到子窗口时出现问题。适用于Firefox和Chrome,但不适用于IE(使用IE11测试)。具有讽刺意味的是,如果打开F12开发工具,它甚至可以在IE中工这是在同一个域中,因此跨域块应该不是问题。我尝试过:
// on the parent
var newWin = window.open('href', 'title', '');
newWin.myFunc = function() { alert('test'); };
// on the child (when calling this I get error: 'myFunc' is undefined)
myFunc();
我知道我可以反过来 - 调用孩子父母定义的函数:
// on the parent
function myFunc() {
alert('test');
}
// from child
opener.myFunc();
但是由于超出这些问题范围的原因,我需要能够将匿名函数传递给它必须能够执行的子项。
答案 0 :(得分:0)
经过几个小时的尝试,我最终得到了这个解决方案:
// on parent
var newWin = window.open('href', 'title', '');
$(newWin.document).ready(function() {
newWin.myFunc = function() {
alert('test');
};
});
// on the child
myFunc();
Chrome和Firefox似乎在加载文档之前立即允许在子窗口上进行变量声明,因此不需要这种解决方法,但这也可以正常工作。