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

时间:2011-02-27 20:16:14

标签: javascript jquery iframe

我需要能够打开指向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与该类的链接并为其添加新的窗口属性?或者,还有更好的方法?感谢

2 个答案:

答案 0 :(得分:0)

如果没有一些代码,我不知道代码的确切结构,但我可以做到这一点。它也需要jQuery在iframe中。

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

答案 1 :(得分:0)

你可以改变它,如果你可以设法执行这种代码,更改类有点麻烦,你有一个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>