Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2013, 15:07
Интересующийся
Отправить личное сообщение для SeemaN_tm Посмотреть профиль Найти все сообщения от SeemaN_tm
 
Регистрация: 23.01.2013
Сообщений: 19

Програмное изменение домена страницы.
Всем привет.
Интересует вопрос. Возможно ли на загруженной странице изменить её домен или скриптом изменить все вариации ссылок ?

К примеру. Открыл я страницу рамблера. А скрипт, который находится в коде этой страницы, в момент полной загрузки страницы браузером правит все ссылки. Дабы все относительные ссылки ссылались не на домен рамблера а к примеру яндекса.

Я понимаю что ссылки станут не рабочими. Но это не суть важна. Важен принцип.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2013, 15:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от SeemaN_tm
Я понимаю что ссылки станут не рабочими. Но это не суть важна. Важен принцип.
В принципе есть онлайн парсеры сайтов, с приведением всех абсолютных ссылок ресурса, в относительные и позволяющие сохранять сайты в качестве бекапа на компьютер, с просмотром ничем не отличающимся от онлайн
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2013, 15:26
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от SeemaN_tm
Но это не суть важна. Важен принцип.
В принципе подобная задача достаточно проста и ничем не ограничена,
<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>

Последний раз редактировалось Deff, 27.06.2013 в 15:45.
Ответить с цитированием
  #4 (permalink)  
Старый 28.06.2013, 05:58
Интересующийся
Отправить личное сообщение для SeemaN_tm Посмотреть профиль Найти все сообщения от SeemaN_tm
 
Регистрация: 23.01.2013
Сообщений: 19

Пример и принцип понятен. Благодарю.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2013, 06:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

SeemaN_tm, чаще всего на сайтах в ссылках прописаны относительные ссылки, без домена. Поэтому достаточно создать внутри <head> тег <base target="//новый_домен.ru" /> и ссылки будут указывать на новый домен
Ответить с цитированием
  #6 (permalink)  
Старый 28.06.2013, 06:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Поправка: не .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>
Ответить с цитированием
  #7 (permalink)  
Старый 28.06.2013, 19:06
Интересующийся
Отправить личное сообщение для SeemaN_tm Посмотреть профиль Найти все сообщения от SeemaN_tm
 
Регистрация: 23.01.2013
Сообщений: 19

Вообще замечательно.

А можно на странице сделать некую ловушку, которая в случае клика по ссылке или страница просто решила подгрузить скрип или картинку, или же загруженный скрипт пытается куда нить лукануться, могла бы отловить это событие и изменить адрес обращения к примеру не просто на 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 ?

Поделитесь мыслями.
Ответить с цитированием
  #8 (permalink)  
Старый 28.06.2013, 19:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от SeemaN_tm
Вот и встаёт вопрос, можно ли с минимумом изменений страницы сделать чтоб любая ссылка на странице или скрипте обращалась куда либо только через 192.168.0.100:8080 ?
Думаю это не реально сделать клиентским скриптом.
Допустим где-то в скрипте происходит смена страницы:
window.location = 'new_address.html';


Эту смену никак не отловить, насколько я знаю.
Может быть задачу можно решить написав скрипт-расширение для браузера.
Ответить с цитированием
  #9 (permalink)  
Старый 28.06.2013, 19:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ну наверно ловить клик по ссылке, произвести анализ ссылки на соответствие с текущим доменом
Ответить с цитированием
  #10 (permalink)  
Старый 28.06.2013, 21:26
Интересующийся
Отправить личное сообщение для SeemaN_tm Посмотреть профиль Найти все сообщения от SeemaN_tm
 
Регистрация: 23.01.2013
Сообщений: 19

Ну благодарю и на этом.
Есть пара идей. Посмотрим на сколько они осуществимы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение фона при обновлении(рефреш) страницы Marker Events/DOM/Window 3 14.10.2013 12:40
Изменение адреса страницы после аякса. Tchort AJAX и COMET 9 03.09.2011 00:20
Как отследить изменение адреса страницы? Neokortex Events/DOM/Window 2 10.07.2011 14:41
Контент страницы с этого же домена themetis Events/DOM/Window 2 24.10.2010 12:16
Изменение шапки при обновлении страницы nasty blood (X)HTML/CSS 0 07.04.2008 13:13