Откройте все ссылки в iframe на новой вкладке (в том же домене) - PullRequest
0 голосов
/ 10 октября 2018

В этой теме много похожих сообщений, но я перепробовал все, и ни один из них не помог мне.

У меня есть iframe, который ведет другие страницы моего домена.

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

Примечание: я не могу изменить код страниц внутри iframe.

Используя jQuery, я хотел бы открыть все ссылки 'text / index.html' в новой вкладке.Как я могу это сделать?

Спасибо!

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете вызвать 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, анализируете его, находите ссылки и открываете их, используя window.open.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...