有问题传递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();
但是由于超出这个问题范围的原因,我需要能够将一个匿名函数传递给子函数,它必须能够执行。
2条答案
按热度按时间6ioyuze21#
经过几个小时的尝试,我最终得到了这个解决方案:
同样,Chrome和Firefox似乎允许在加载文档之前立即在子窗口上声明变量,因此不需要这种解决方法,但这也同样有效。
t98cgbkg2#
我遇到了同样的问题,所以我使用setTimout()函数来修复子窗口中一个未定义的函数error。