强制js生成目标链接

时间:2016-03-16 14:15:58

标签: javascript jquery iframe

我的一个页面上有一个包含js小部件的iframe。 此小部件包含一个带有target =“_ self”attribut的动态链接。我没有可能改变它。

因此,我正在寻找一种解决方案来强制链接在target =“_ parent”或_blank中打开。覆盖生成的链接中的target =“_ self”的解决方案。 我尝试使用和在stackoverflow上找到的几个js但这不起作用,因为链接是由js生成的。

我是新手,并不是真的了解所有这些事情,但我希望你能理解我的问题。

有任何线索吗? 感谢

1 个答案:

答案 0 :(得分:0)

为什么这是不可能的

首先,设计了iframe以防止跨域脚本攻击。除非内容与访问它的页面位于同一个域中,否则不会发生任何更改 - 即使是次要内容,如您所建议的那样。这是一个安全功能,它是最好的全面。想象一下,如果您可以轻松克隆和修改其他页面,就会发生大规模的网络钓鱼攻击!

修改

如果内容在您自己的服务器上,这会稍微容易一些。按照评论中的其他建议来完成此任务。

为什么这可能

但是,如上所述,如果您愿意进入PHP世界,可以使用cURL下载(某些)页面的全部内容。这将允许您显示一个完整的网页,所有css和脚本在您自己的网站上的div中工作,类似于iframe。

此方法的好处在于,由于内容已下载到您的服务器,并且您自己提供,因此可以通过javascript,css和任何其他语言进行编辑。它的一个例子如下所示;

$ch = curl_init("http://www.example-webpage.com/file.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch); // This is the html - either display it on it's own page, or shove it in a div (if styling allows)
curl_close($ch);

希望这是有道理的。