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 13: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 14:43

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

ff451000s 19.12.2016 22:33

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

laimas 19.12.2016 23:14

Цитата:

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

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

ff451000s 20.12.2016 14:56

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

laimas 20.12.2016 15:24

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

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

ff451000s 20.12.2016 18:51

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

ff451000s 20.12.2016 19:03

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

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

laimas 20.12.2016 19:12

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

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

ff451000s 21.12.2016 08:16

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


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