Програмное изменение домена страницы.
Всем привет.
Интересует вопрос. Возможно ли на загруженной странице изменить её домен или скриптом изменить все вариации ссылок ? К примеру. Открыл я страницу рамблера. А скрипт, который находится в коде этой страницы, в момент полной загрузки страницы браузером правит все ссылки. Дабы все относительные ссылки ссылались не на домен рамблера а к примеру яндекса. Я понимаю что ссылки станут не рабочими. Но это не суть важна. Важен принцип. |
Цитата:
|
Цитата:
<script type="text/javascript"> window.onload= function() { var arr=document.links; var chang1= "javascript\\.ru"; // Точки экранируем var chang2="myCite.ru"; chang1 = new RegExp(chang1,"i"); for (i=0;i<arr.length;i++){ arr[i].href = arr[i].href.replace(chang1,chang2); } } </script> |
Пример и принцип понятен. Благодарю.
|
SeemaN_tm, чаще всего на сайтах в ссылках прописаны относительные ссылки, без домена. Поэтому достаточно создать внутри <head> тег <base target="//новый_домен.ru" /> и ссылки будут указывать на новый домен
|
Поправка: не .target , а .href:
<a href="test.html">test.html</a> <button id="button">Сменить домен</button> <script> button.onclick = function() { var base = document.createElement('base'); base.href = '//ya.ru'; document.head.appendChild(base); } </script> |
Вообще замечательно.
А можно на странице сделать некую ловушку, которая в случае клика по ссылке или страница просто решила подгрузить скрип или картинку, или же загруженный скрипт пытается куда нить лукануться, могла бы отловить это событие и изменить адрес обращения к примеру не просто на ya.ru, а некий_айпи:некий_порт/ya.ru ? Если подробней. То я делаю некое подобие прокси сервера. Обращаюсь к проге через браузер ссылкой в адресной строке: 192.168.0.100:8080/www.rambler.ru Моя программа получает запрос вида: GET /www.rambler.ru HTTP/1.1/r/n Host: 192.168.0.100:8080/r/n И так далее... Приводит запрос к виду: GET / HTTP/1.1/r/n Host: www.rambler.ru/r/n И так далее... Получает с инета эту страницу и отправляет клиенту запросившему её. Но вот не задача. Все ресурсы страницы по относительным ссылкам, страница начинает запрашивать таким образом: GET /java/js.js HTTP/1.1/r/n Host: 192.168.0.100:8080/r/n И так далее... В итоге моя программа не может узнать с какого домена этот скрипт грузить. Как вариант, отлавливать все ссылки на странице и править их. Сложно, громозко (в программном коде), но можно. А вот как со скриптами поступить ? Ведь там страница может разбита по нескольким переменным. И следовательно, может быть просто не реально научить программку отслеживать и править такие адреса. Пробовал в браузере, в раздел прокси прописать айпи и порт своей проги. Все запросы начинают идти в программу подходящим образом. Но что мне не понравилось, так это то, что всякая бредятина в виде майлагента и прочей хрени, начинает тоже работать через эту прогу. Вот и встаёт вопрос, можно ли с минимумом изменений страницы сделать чтоб любая ссылка на странице или скрипте обращалась куда либо только через 192.168.0.100:8080 ? Поделитесь мыслями. |
Цитата:
Допустим где-то в скрипте происходит смена страницы: window.location = 'new_address.html'; Эту смену никак не отловить, насколько я знаю. Может быть задачу можно решить написав скрипт-расширение для браузера. |
Ну наверно ловить клик по ссылке, произвести анализ ссылки на соответствие с текущим доменом
|
Ну благодарю и на этом.
Есть пара идей. Посмотрим на сколько они осуществимы. |
Часовой пояс GMT +3, время: 19:24. |