繁体   English   中英

在新窗口中打开指向iFrame中特定域的链接

[英]Open link to specific domain within an iFrame in a new window

我需要能够打开指向iFrame中特定网址的链接; 链接是由php生成的,因此我无法更改源代码,因此,如果可能,我需要在iFrame中动态更改链接。

我正在做的是这样的:在一个非营利组织的网站上,我在页面的iFrame上显示了一个会员商店(由php生成),以使其与网站的其余部分更具风格。 php商店从联属网络营销服务中提取产品; store.php的链接与主要非营利组织的网站位于同一域中。

问题是产品的最终“立即购买”链接在iFrame中打开了最终的目的地电子商务商店,因此该页面卡在了iFrame中,看起来很糟糕,必须滚动V和H才能看到并检查出来。

我需要在新窗口中打开的链接始终具有“ av_buy_now”类,我可以访问CSS文件,可以对其进行更改。 我可以访问PHP文件,即shop.php,但最终链接似乎不是在本地生成的。 我以这种方式显示iframe:

<iframe src="http://nonprofit.org/shop/mj/shop.php"></iframe>

是否可以使用jQuery或Javascript使用该类找到指向mydomain.com的链接,并为其添加新的window属性? 或者,还有更好的方法? 谢谢

没有一些代码,我不知道您的代码的确切结构,但是我可以完成工作。 它也需要jQuery包含在iframe中。

$('iframe')[0].$('.av_buy_now').filter(function() {
    return $(this).attr('href').indexOf('mydomain.com') > -1;
}).attr('target', '_blank');

如果可以通过某种方式设法执行这种代码,则可以更改它,更改类几乎没有什么麻烦,因为您有一个id,所以可以执行以下操作。

PAGE.html:

<button onclick="openinnewwin()">Get It</button>
<iframe src="test.html" id="ifrm"></iframe>
<script language="javascript">
function openinnewwin(){
ob=document.getElementById('ifrm');
if ( ob.contentDocument ) {
    ob.contentDocument.getElementById('a').target="_blank"; 
}else if ( ob.contentWindow ){
    ob.contentWindow.getElementById('a').target="_blank";   
}
}
</script>

test.html:

<a href="http://www.google.com" class="aaa" id="a">Hello</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM