Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Собрать ссылки на изображения из iframe (https://javascript.ru/forum/events/66500-sobrat-ssylki-na-izobrazheniya-iz-iframe.html)

ff451000s 19.12.2016 12:32

Собрать ссылки на изображения из iframe
 
Собираю ссылки на изображения:
<script>
        var nodeList = document.getElementsByTagName("img");
</script>
<div id="test"></div>
 
<script>
    (function() {
            elem = document.getElementById( 'test' ), i = -1;
        return function() {
            if ( ++i < nodeList.length ) {
                elem.innerHTML = nodeList[ i ].src + '<br>' + elem.innerHTML;
                setTimeout( arguments.callee, 2000 );
            }
        }();
    })();
</script>

Этот код не тянет картинки с ифрейма(другой домен), а они нужны. Подскажите как пофиксить.

laimas 19.12.2016 13:43

Чужой и этим все сказано, нельзя. Шибко надо, значит сервером получать и использовать.

ff451000s 19.12.2016 21:33

Сервером не выйдет. Линки на картинки динамические, нова сессия = новая картинка. А картинки нужно подменить. Какие варианты?

laimas 19.12.2016 22:14

Цитата:

Сообщение от ff451000s
Линки на картинки динамические, нова сессия = новая картинка.

Ну да, то есть клиент работает посессионно, а сервер как шахтер безвылазно из забоя?

ff451000s 20.12.2016 13:56

Возможно я недопонимаю. Кнечная цель, подмена картинок, которые отдаются клиенту на моем домене из чужого ифрейма. Для каждого нового клиента - новые ссылки на картинки. Я не вижу возможности спарсить их средствами сервера, не открыв так или иначе новую сессию. Если возможность есть, очень хотелось бы увидеть наброски.

laimas 20.12.2016 14:24

Клиент запрашивает вашу страницу, это что новая сессия или же продолжение ее просмотра от Рождества Христова? Естственно новая сессия. Какие проблемы при ее формировании запросить по url фрейма чужого домена получить его контент, взять ссылки изображений и поместить их на страницу?

Нельзя сделать это на клиенте, браузер блокирует доступ к ресурсу чужого домена.

ff451000s 20.12.2016 17:51

Каждый новый запрос к ифрейму = новая сессия. Даже если текущий клиент перезагрузит ифрейм, ссылки изменятся. Не понял на счет запроса урл ифрейма именно при формировании сессии. Я могу представить сервер как новый клиент, но как сделать чтобы он получил идентичные с текущим клиентом ссылки не знаю. Как ни крути, с сервера нужно отправить новый запрос, и ответ придет отличный от того, что получил текущий клиент.

ff451000s 20.12.2016 18:03

Браузер блокирует доступ к ресурсу чужого домена только если это ифрейм, или доступ к скрипту:
<script async src="//domain.com/script.js"></script>

тоже нельзя получить?

laimas 20.12.2016 18:12

Вам чего надо - вывести изображения с какого-то ресурса на своей странице или вы уперлись во фрейм принципиально?

Не надо никаких фреймов - запрашивает клиент вашу страницу, сервер получает код страницы стороннего ресурса, парсит и забирает из нее ссылки (можно ли и как это сделать на сервере вопрос иной) и помещает на вашу страницу. И каждый такой запрос, это новый запрос за изображениями, и для каждого клиента. Чего не понятного то?

ff451000s 21.12.2016 07:16

Да, я понял о чем вы. Во фрейм принципиально. И еще несколько принципиальных моментов, которые с сервера не обойти никак. Если нельзя сделать средствами клиента, никаких вариантов.


Часовой пояс GMT +3, время: 21:27.