Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 附加到IFRAME中的链接URL_Javascript_Jquery_Html_Iframe_Append - Fatal编程技术网

Javascript 附加到IFRAME中的链接URL

Javascript 附加到IFRAME中的链接URL,javascript,jquery,html,iframe,append,Javascript,Jquery,Html,Iframe,Append,我有一个带有IFRAME的页面。IFRAME包含指向RSS文章的新闻提要链接。我想在每篇文章的URL target=“\u blank”后面附加内容,以便每篇文章都在一个新窗口中打开,而不是在IFRAME中打开。我不想更改原始新闻提要页面的布局或功能,所以我希望在单击时动态附加到URL。主页和IFRAME页面位于同一个域中。任何帮助都将不胜感激 示例代码: <html> <head> </head> <body> <iframe src="h

我有一个带有IFRAME的页面。IFRAME包含指向RSS文章的新闻提要链接。我想在每篇文章的URL target=“\u 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,而不仅仅是文章。我希望通过在URL中附加target=“\u blank”,或者甚至在URL中附加?tmpl=component,以便Joomla除去文章之外的所有内容,从而在新窗口(而不是IFRAME)中打开此文件

编辑以添加: 好的……这是我的代码:

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

$(函数(){
$('iframe').load(函数(){
$('a',$(this.contents()).each(function(){this.href=this.href+“?tmpl=component”;});
});
});
我添加第一个iframe只是为了在Facebook上进行测试

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>

以下是该页面的直接链接: 一切正常

以下是Facebook页面的链接: 第一个iframe的URL按其应该的方式追加,但第二个iframe未被触及


我不知道这为什么不起作用。

您可以使用
访问iframe的内容。contents
然后使用
查找iframe中的元素。查找
然后使用
每个
根据您的喜好修改元素,因为您没有提供任何代码,所以我也将坚持理论上的答案,这应该适合您

$('a',$('iframe').contents()).attr('target','_blank');
简而言之,它获取所有
iframe
s的内容,找到它们的
a
标记,并应用适当的
target
属性

在示例中的
head
标记中添加以下(未测试的)代码片段,以达到预期效果

<script>
    $(function() {
        $('iframe').load(function(){
            $('a',$(this).contents()).attr('target','_blank');
        });
    });
</script>

$(函数(){
$('iframe').load(函数(){
$('a',$(this.contents()).attr('target','u blank');
});
});
在上面的代码片段中,有很多等待事件发生

  • 首先,我们等待页面加载。我们想等待页面加载,这样我们就可以找到我们的
    iframe
    s
  • 当执行回调时,我们会找到所有
    iframe
    s,并在加载它们时附加一个不同的回调
  • 这个不同的回调是一个代码片段,用于查找
    a
    标记并对其进行修改

@yahelc根据,该限制仅适用于使用
attr()检索值。
;当设置值时,它适用于所有匹配的元素。你能给我一个基于示例代码的示例吗?仍在学习,需要查看可视化应用程序。代码应该放在主页上的什么地方?@CurtisHolzschuh我已经修改了我的答案。但我没有测试,所以。。。祝你好运!:)作为一个独立的页面很好用:但是嵌入Facebook它就不起作用了:好吧……我弄明白了。问题是,现在Facebook需要一个安全的应用服务器,索引页面(通过HTTPS提供)由服务器上的共享证书链接。但是IFRAME是直接链接的,所以我尝试跨域脚本。我必须关闭Joomla SEF才能通过HTTPS访问IFRAME页面。谢谢你的帮助!