我有一个带有IFRAME的页面。 IFRAME包含RSS文章的新闻源链接。我想附加到每篇文章的URL target =“_ blank”,以便每篇文章都在新窗口中打开,而不是在IFRAME中打开。我不想更改原始新闻源页面的布局或功能,所以我希望在点击时动态附加到URL。主页面和IFRAME页面位于同一个域中。任何帮助将不胜感激。
示例代码:
<html>
<head>
</head>
<body>
<iframe src="http://vangopainting.net/painting-tips?tmpl=component"></iframe>
</body>
<html>
正如您所看到的,上面的URL提取了一个剥离的Joomla页面,只显示了显示的内容。此IFRAME将嵌入到Facebook页面中,当用户点击链接时,它会将整个网站嵌入IFRAME,而不仅仅是文章。我希望在新窗口中打开,而不是IFRAME,方法是将URL =“_ blank”附加到URL,或者甚至将?tmpl = component附加到URL,以便Joomla删除除文章之外的所有内容。
编辑添加: 好的......这是我的代码:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script>
$(function() {
$('iframe').load(function(){
$('a',$(this).contents()).each(function(){this.href = this.href + "?tmpl=component";});
});
});
</script>
</head>
<body>
<iframe src="link.html" width="100%" height="50px" frameborder="0" scrolling="no"></iframe>
<iframe src="http://vangopainting.net/painting-tips?tmpl=component" width="100%" height="100%" frameborder="0" scrolling="no"></iframe>
</body>
</html>
我在Facebook上添加了第一个用于测试目的的iframe。
link.html中的内容:
<html>
<head>
</head>
<body>
<a href="http://vangopainting.net/painting-tips/508-newest-mobile-app-matches-paint-color-instantly">http://vangopainting.net/painting-tips/508-newest-mobile-app-matches-paint-color-instantly</a>
</body>
</html>
以下是该页面的直接链接:http://vangopainting.net/fb/tabs/paintingtips/index.html 一切都按预期工作。
以下是Facebook页面的链接:https://www.facebook.com/pages/Van-Go-Painting-Inc/177992368936448?sk=app_366401100043274 第一个iframe的URL会按原样附加,但第二个iframe不受影响。
我不知道为什么这不起作用。
答案 0 :(得分:1)
这应该适合你。
$('a',$('iframe').contents()).attr('target','_blank');
简而言之,它会抓取所有iframe
的内容,找到他们的a
代码,并应用相应的target
属性。
在示例中的head
标记内添加以下(未经测试的)代码段,以达到预期效果。
<script>
$(function() {
$('iframe').load(function(){
$('a',$(this).contents()).attr('target','_blank');
});
});
</script>
上述代码段中发生的事件有很多等待。
$
加载。我们希望等待页面加载,以便我们知道我们可以找到iframe
s。iframe
并附加一个不同的回调,以便在加载时调用。a
代码并修改它们的实际工作的代码段。答案 1 :(得分:0)
您可以使用.contents
访问iframe的内容,然后使用.find
在iframe中找到元素,然后使用each
根据自己的喜好修改元素,因为您还没有提供任何代码所以我也要坚持理论答案