Javascript 在open.Window之后禁用父窗口

Javascript 在open.Window之后禁用父窗口,javascript,popup,onclick,window,parent,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

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

<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>

我的问题是,当我在Amazon弹出窗口中单击相册封面时,我的带有链接的父站点会刷新目标Amazon url。当我通过在地址栏中键入URL打开弹出式URL,然后单击封面时,会打开一个带有目标URL的新窗口(这是我想要强制的)


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

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

我的意思是: 假设您正在启动原始弹出窗口,其代码如下所示:

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

带有问题代码的弹出窗口如下(popup.html):


您需要确保原始弹出窗口标识符与弹出窗口中的标识符不同。因此,原始弹出窗口应该类似于:

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

我使用以下方法解决了我的问题:

<a href="popup.html" onclick="window.open(this.href, 'popper'); return false;">Popup</a>
使用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> 

window.opener=null;window.location.href=“;

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

出于某种原因
返回false;
并没有取消单击事件。应该这样做。对其进行适当的函数调用?我确实写过这篇文章,因为我经常看到这个弹出窗口:我不确定我是否正确。当我点击亚马逊链接(这是不是你不取消点击事件的意思?)。我想防止我的页面被算作亚马逊网站上此链接的父窗口。你能进一步解释一下吗?我试图将onclick命名为“popper”和onkeypress命名为“popup”“,但这没有帮助。如果有更合适的方法连接玩家并打破父子关系,让我知道。现在我明白你的意思了。弹出的目标链接不是我的网站,它是亚马逊。我既不想更改目标amazon弹出窗口,也不想更改父窗口。我使用JSPopup为音乐预览播放器提供了一个很好的窗口,但是如果我使用普通html链接,我也会遇到同样的问题。亚马逊弹出窗口上的链接被强制在父窗口中打开,这是我想要阻止的。你说父窗口也是一个弹出窗口,对吗?或者至少,有问题代码的窗口已经是一个弹出窗口,对吗?确保用于启动包含此代码的弹出窗口的代码没有使用“popper”来标识窗口。我会在我的帖子中澄清,给我一秒钟来编辑它。不,父窗口不是弹出窗口。在MySite(A)上,我有一个到亚马逊(B)的链接[例如]。当我点击MySite上的链接(A)时,我会在一个新窗口或弹出窗口中打开Amazon(B)。在这里之前,一切都很好。当我现在在新的Amazon(B)窗口中点击CD封面时,目标会在MySite(A)中打开,因为MySite(A)在某种程度上是父窗口,这就是我想要阻止的。哦,我明白你的意思了。Amazon弹出窗口中有一个链接正在父窗口中打开,对吗?不幸的是,我认为在不修改Amazon页面的DOM或创建一些黑客工作的情况下,没有办法改变这一点。亚马逊页面上的专辑封面链接正在调用
amz_js_RefreshOriginalWindow('http://www.amazon.de/Reservoir-Dogs-Ost-Various/dp/B000002OK3/ref=pd_krex_fa_img'); 返回false。如果您执行
window.opener=window;window.parent=window
在弹出窗口中,它可能会阻止Amazon页面更新原始窗口。