我有两个窗口,一个是从另一个打开的,所以,我opener
在“子”窗口中有一个属性。
父窗口在全局范围内有一些函数,必须以函数作为第一个参数调用(它将用作回调)。
两个页面都是从同一个域打开的,所以,我没有任何同源策略限制(我希望如此)......
在子窗口中,我有这样的代码
if(window.opener) {
window.opener.myFunction(function() { ... });
}
一切正常,直到我尝试在 IE 中运行它。在此浏览器中,由 接收的参数myFunction
始终是类型Object
(用 选中typeof
)。代码myFunction
是这样的:
window.myFunction = function(cb) {
alert('Callback type is ' + (typeof cb));
if(typeof cb == 'function')
cb();
else
alert('Not a function!');
}
现场演示:http ://elifantiev.ru/ie-opener-issue/first.html
问题是:
- 这是符合标准的行为吗?
- 这个问题有一些解决方法吗?