Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В локальном html файле отобразить страницу Яндекса с заменой (https://javascript.ru/forum/misc/59097-v-lokalnom-html-fajjle-otobrazit-stranicu-yandeksa-s-zamenojj.html)

optik77 27.10.2015 21:18

В локальном html файле отобразить страницу Яндекса с заменой
 
Добрый день!

Вопрос следующий.
Необходимо создать html страницу, которая будет находиться у пользователей на рабочих столах (локально).
В данном файле требуется взять исходный код страницы Яндекса (некого корпоративного ресурса), заменить в коде вхождение слова Погода (ссылки на некий ip адрес на другой адрес) на какое то свое слово, и отрисовать отредактированный код (например с помощью document.write(edited-html-code) на Js).
Страница должна работать в ie8/9, Firefox.

Какие варианты могут быть?

Могу сделать экзешник на vb, который скачает нужную страницу на локал, сделает нужные замены, и вызовет объект интернет эксплорера, отобразив страницу, но хочется всё же без экзешника а с помощью скрипта...

У меня Все попытки создать что то скриптовое заканчиваются проблемой cross domain protection (xmlhttprequest, Iframe, ...)

laimas 27.10.2015 22:05

Цитата:

Сообщение от optik77
У меня Все попытки создать что то скриптовое заканчиваются проблемой cross domain protection

Поэтому и нужно выполнять как ПО, а не скрипт из под браузера, ибо нельзя, доступ к чужому ресурсу не разрешен.

optik77 27.10.2015 22:11

Может всё же есть какие нибудь примеры подобного "обмана"?
В статьях мелькали слова jsonp, postMessage.. Но честно говоря эти технологии вообще не знакомы мне.

laimas 27.10.2015 22:31

jsonp - есть такое, но и сервер должен отдавать соответствующий заголовок.

optik77 28.10.2015 17:25

Аякс тоже не спасет?..

laimas 28.10.2015 17:32

Нет, пока серер не будет передавать заголовок Access-Control-Allow-Origin для конкретного домена или для всех разрешающий такой доступ, ничего не получится.

ruslan_mart 28.10.2015 17:41

Цитата:

Сообщение от optik77
Может всё же есть какие нибудь примеры подобного "обмана"?
В статьях мелькали слова jsonp, postMessage.. Но честно говоря эти технологии вообще не знакомы мне.

Можешь создать отдельную страницу на каком-нибудь хостинге, которая с помощью php будет брать контент с яндекса. Ну, а там уже потом отдавать это всё через JSONP.

get-yandex.php:
header('Content-Type: text/javascript');
$content = file_get_contents('http://yandex.ru');

echo 'yandexCallback("' . addslashes($content) . '")';



А это в локальном файле:

<!doctype>
<html>
    <head>
        <meta charset="utf-8">
    </head>

    <body>
        <script type="text/javascript">
            function yandexCallback(content) {
                alert(content);
            }
        </script>
        <script src="http://mysite.ru/get-yandex.php" type="text/javascript"></script>
    </body>
</html>

laimas 28.10.2015 18:08

Цитата:

Сообщение от Ruslan_xDD
Ну, а там уже потом отдавать это всё через JSONP.

Если через свой сервер, то не обязательно JSONP, можно что угодно, сервер то свой. )

optik77 28.10.2015 18:16

Ruslan_xDD,
Спасибо! Появилась возможность на неком внутренеем сервачке с поднятым xampp создать свою страничку пхп, как вы написали выше get-yandex.php, которая на себе всегда будет показывать код яндекса, а затем в своем локальном файле штмл содрать его.
Вопрос в том, нужно ли давать какие то привилегии файлу get-yandex.php, чтобы мой локальный файл сумел выдрать с него этот код, а то изначальная проблема может зациклиться перенесясь со страницы Яндекса на мою фейковую страницу (что то типа заголовка access control allow origin о котором писали выше или что то еще) ?
А также останется найти пхп код функции file_get_contents, так?

optik77 28.10.2015 18:23

laimas,

Поясните пожалуйста, что значит свой/не свой сервер? Изначальная задача состоит в том чтобы выдрать код некой страницы с внутреннего корпоративного интранетовского сервера, но расположенного в другой сети, нежели наши рабочие компы.
Тот 'наш' сервер с поднятым xampp о котором я написал выше, также находится в другой сети, получается что он не поможет мне и будет 'не своим'?
Картина следующая:
Рабочие станции на которых будет работать создаваемый штмл - в сети 10.95.128.ххх
Сервер с нужной штмл страницей, которую хотим украсть - в сети 10.85.151.65 (к примеру)
'Наш' сервачок с xampp на котором я могу создать свои пхп страницы - в сети 10.95.129.11(к примеру)


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