Как извлечь HTML ответ из iframe, где страница формируется Ajax-ом?

109
12 июля 2019, 11:10

подскажите, пожалуйста, как можно извлечь ответ из айфрейма, внутри которого страница исполняется на аяксе, результат на аяксе выводится. Не получилось достать этот ответ, пробовал на jQuery contents(), JS. Возвращается пустота, которая между тегами айфрейма, а сам ответ со страницы, который аякс - не исполняется, он не возвращается через айфрейм.

Есть страница c поиском туроператора http://anextour.com.ua/search?TOWNFROMINC=155&STATEINC=11&CHECKIN_BEG=20181226&CHECKIN_END=20181226&NIGHTS_FROM=3&NIGHTS_TILL=28&STARS=&MEAL=&ADULT=2&CHILD=0

вся огромная форма поиска формируется аяксом + результат поиска тоже аяксом.

Эта форма на вышеприведенную страницу вставляется iframe-ом, вот сам адрес формы, с айфрейма достал http://online3.anextour.com.ua/default.php?page=search_tour&DOLOAD=1&FREIGHT=&TOWNFROMINC=155&STATEINC=11&CHECKIN_BEG=20181226&CHECKIN_END=20181226&NIGHTS_FROM=3&NIGHTS_TILL=28&STARS=&MEAL=&ADULT=2&CHILD=0

Я делаю расширение для гугл хром, которое должно иметь доступ к ответу формы поиска на странице http://anextour.com.ua/search?TOWNFROMINC=155&STATEINC=11&CHECKIN_BEG=20181226&CHECKIN_END=20181226&NIGHTS_FROM=3&NIGHTS_TILL=28&STARS=&MEAL=&ADULT=2&CHILD=0

пробовал так:

var iframe = document.getElementById("myFrame");
var elmnt = iframe.contentWindow.document.getElementsByTagName("H1")[0];

и так:

var $iframe = $("iframe#frameID");
    $iframe.on('load', function(){
        var iFrameDOM = $iframe.contents();
        iFrameDOM.find("body").css("background-color", "blue");
    });

и так:

<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
    <title>iframehide</title>
    <script type="text/javascript">
        $(function(){
            var f=$('#foo')
            f.load(function(){ 
                f.contents().find('div').hide(); 
            })
        })
    </script>
</head>
<body>
<iframe id="foo" src="iframehide-frame.html" /></iframe>
</body>
</html>

и так:

var x = document.getElementById("myframe");
var y = x.contentDocument;

Все способы возвращают пустоту, ни один из способов не извлекает отработанный айфреймом HTML, подскажите пожалуйста, как получить именно отработанный айфреймом аяксовый ответ ?

Answer 1

В расширении хрома можно использовать Сontent Scripts для запуска своего скрипта на странице с последующим извлечением содержимого страницы

https://developer.chrome.com/extensions/content_scripts

или webRequest для перехвата трафика на более низком уровне

https://developer.chrome.com/extensions/webRequest

READ ALSO
OAuth PHP, scope=messages

OAuth PHP, scope=messages

PHP код:

130
сохранение изображения в папку

сохранение изображения в папку

Подскажите, почему сохраняет файлы по 3 байта а не нормальный размер+ при выводе не открываются фото, как будто они повреждены

150
Как работает веб-сервер Apache? Параллельно выполняющиеся скрипты в Apache

Как работает веб-сервер Apache? Параллельно выполняющиеся скрипты в Apache

Есть php скрипт который обрабатывает данные из бд, и по определенному условию копирует их в бд другим записямЭтот скрипт запускается через...

123