首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IE中检测窗口打开程序?

如何在IE中检测窗口打开程序?
EN

Stack Overflow用户
提问于 2013-09-04 21:48:30
回答 2查看 2.5K关注 0票数 5

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

我要给开窗器发个口信。这在FF、Chrome和Opera中都很好,但是在IE8-10中window.opener是空的。

我使用window.open使新窗口出现。

我甚至试过这个:

代码语言:javascript
复制
var new_window = window.open( url, '_social', "height=600,width=600" );

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

打开的窗口只有一个脚本标记,如下所示:

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

我打开控制台并记录window.opener,结果显示为null,所以我不认为它与DOM是否准备好有任何关系。

在使用脚本标记在页面上着陆之前,该窗口会重定向几次。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-04 22:19:32

实际上,这个问题可能与window.opener - because 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
EN

Stack Overflow用户

发布于 2013-09-04 22:02:55

IE8不喜欢空间。为了使其发挥作用,将其移除:

代码语言:javascript
复制
var new_window = window.open(url,'_social',"height=600,width=600");

if (!new_window.opener) {
  new_window.opener = window;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18624351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档