在open.window之后禁用父窗口

时间:2013-02-12 23:27:39

标签: javascript popup onclick window parent

我想从我的网站链接到亚马逊音乐预览播放器作为弹出窗口。我有这段代码:

<a href="http://www.amazon.de/gp/recsradio/radio/B000002OK3/" target="_blank" onclick="window.open(this.href,'popper','scrollbars=1,width=900,height=600'); return false;" onkeypress="window.open(this.href,'popper','scrollbars=1,width=900,height=600'); return false;">Link</a>

我的问题是,当我点击亚马逊弹出窗口中的专辑封面时,我的父网站链接会刷新目标亚马逊网址。当我通过在地址栏中输入网址打开弹出网址然后点击封面时,会打开一个新窗口,其中包含目标网址(这是我想强制执行的)。

是否可以不通过链接弹出窗口传递父关系?

2 个答案:

答案 0 :(得分:0)

确保您没有使用“popper”作为winow.open的两个实例的标识符。打开初始弹出窗口的主要弹出窗口应该与弹出窗口内部的弹出窗口不同,除非您希望它更改已打开的弹出窗口(在这种情况下,onclick属性中的window.open基本上是不必要的)

我的意思是: 假设您正在使用这样的代码启动原始弹出窗口:

<a href="popup.html" onclick="window.open(this.href, 'popper'); return false;">Popup</a>

有问题的代码弹出窗口就是这个(popup.html):

<a href="http://www.amazon.de/gp/recsradio/radio/B000002OK3/" target="_blank" onclick="window.open(this.href,'popper','scrollbars=1,width=900,height=600'); return false;" onkeypress="window.open(this.href,'popper','scrollbars=1,width=900,height=600'); return false;">Link</a>

您需要确保原始弹出框标识符与弹出框中的标识符不同。所以,原始弹出窗口应该是这样的:

<a href="popup.html" onclick="window.open(this.href, 'original-popper'); return false;">Popup</a>

答案 1 :(得分:0)

我用这样的东西解决了我的问题:

使用JS从我的网站打开本地popup.php,同时将amazonurl作为var。

传递
<a onkeypress="window.open(this.href,'popup','scrollbars=1,width=900,height=600'); return false;" onclick="window.open(this.href,'popper','scrollbars=1,width=900,height=600'); return false;" rel="nofollow" target="_blank" href="http://domain.com/popup.php?amazonurl=http://[...]">Link</a>

在popup.php中我使用

<script language="javascript" type="text/javascript">  
window.opener = null; window.location.href = "<?php echo $_GET['amazonurl']; ?>;</script> 

使windpw.opener = null,然后使用amazon URL刷新弹出窗口。