在新标签页(同一域)中打开iframe中的所有链接

时间:2018-10-10 16:59:14

标签: javascript iframe

关于此主题的文章很多,但我尝试了全部,但都没有完成。

我有一个iframe可以领导域中的其他页面。

<iframe src="test/index.html" frameborder="0" width="100%" height="100%" id="iframe" name="iframe"></iframe>

注意:我无法更改iframe中页面的代码。

使用jQuery,我想在新标签中打开'text / index.html'的 all 链接。我怎样才能做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以像这样在function中调用iframe

document.getElementById('targetFrame').contentWindow.targetFunction();

现在,您可以执行以下操作:

var iframe = document.getElementById('iframe');
var links = (iframe.contentDocument || iframe.contentWindow.document).getElementsByTagName('a');

,然后您可以使用window.open迭代链接并在新标签页/窗口中打开它们。由于安全性限制,某些浏览器不允许您执行此操作。现在,如果iframe与其他窗口有一些消息传递,那么您可能想阅读这篇文章:https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

最后,如果这些都不可用,则只需将请求发送到显示在iframe上的页面,然后在收到HTML时进行解析,查找链接并使用{ {1}}。