如何检测IE中的窗口开启工具

时间:2013-09-04 21:48:31

标签: javascript

我在堆栈上找不到任何好的答案 - 它们与对话框,文本编辑器和一个使用VBScript的人有关。

我需要在开窗器上发布消息。这在FF,Chrome和Opera中运行良好,但在IE8-10中window.opener为空。

我正在使用window.open来显示新窗口。

我甚至试过这个:

var new_window = window.open( url, '_social', "height=600,width=600" );

if ( !new_window.opener ) {
  new_window.opener = window;
}

打开的窗口只有一个脚本标记:

<script type="text/javascript">
var data = {
  type : 'redirect',
  destination : '<?= $destination; ?>'
};
window.opener.postMessage( JSON.stringify( data ), '*' );
window.close();
</script>

我打开了控制台并记录了window.opener,它出现了null,所以我认为它与DOM准备好之前没有任何关系。

在使用脚本标记登录页面之前,窗口会重定向几次。

2 个答案:

答案 0 :(得分:1)

实际上,问题可能与window.opener无关 - 因为IE8 +只​​能使用postMessage与iframe通信。

http://blogs.msdn.com/b/ieinternals/archive/2009/09/16/bugs-in-ie8-support-for-html5-postmessage-sessionstorage-and-localstorage.aspx

答案 1 :(得分:0)

IE8不喜欢空格。删除它们以使其工作:

var new_window = window.open(url,'_social',"height=600,width=600");

if (!new_window.opener) {
  new_window.opener = window;
}