Перехват редиректа

Тема в разделе "JavaScript", создана пользователем Ratko, 16 сен 2010.

Статус темы:
Закрыта.
Модераторы: ZiX
  1. Ratko

    Ratko Постоялец

    Регистр.:
    13 сен 2008
    Сообщения:
    92
    Симпатии:
    21
    У меня следующая проблема:
    Есть javascript, который создает фреймы, и загружает во фреймы страницы. Все работает хорошо, если ссылки прямые, но если при переходе по ссылке случается редирект - перегружается вся страница. Возможно ли чтобы редирект проходил не на странице, а во фрейме?
    Возможно ли средствами javascript отслеживать и запрещать редиректы?
     
  2. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Скорее всего речь идёт не о редиректе, а о скрипте "Уничтожитель фреймов" которые используют сайты.
    Пример yandex.ru
    Данный скрипт работает во всех браузерах, кроме Opera.

    Если, Вы загружаете чужие сайты, например yandex, то повлиять можно если использовать серверный скрипт, который будет парсить загружаемую страницу, вырезать "зловредный код" и уже выводить на своём сайте результат работы. Визуально страница будет грузится так же быстро. Единственное, донор может заметить частое обращение с одного ip.

    Открытие нового окна в не фрейма, так же может быть при клике на ссылке (на загруженном сайте в фрейме) с target="_blank", обычный редирект такое выполнить не может (target="_blank"), т.к. будет блокироваться современными браузерами, как попытку открыть новую вкладку без ведома пользователя, но есть скрипты (обычно используются партнёрками типа маркетгид) которые это обходят, перехитрить этот скрипт так же нельзя, кроме вышеописанного метода.
     
  3. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    можно на jQuery, перехватывать ссылки, и открвать их где угодно
    занимательный перехват ссылок с типаом бланк


    http://jquerylist.ru/tooltipe/tblank.html

    а вот редиректы вида
    Код:
    
    <script type="text/javascript">
      setTimeout(function(){$(window.location).attr("href", "' . $url . '");},'.$time.');
    </script>
    
    остановить явой не просто будет
     
  4. Ratko

    Ratko Постоялец

    Регистр.:
    13 сен 2008
    Сообщения:
    92
    Симпатии:
    21
    Мне нужно что то типа этого:

    http://listen.grooveshark.com/#

    Находишь трек, проигрываешь, и когда во время проигрывания трека вбиваешь новый адрес в адресную строку - выводится табличка: "Вы действительно хотите..." как на скрине:
    [​IMG]
    как можно сделать подобное. У меня опыта маловато. :nezn:
     

    Вложения:

    • screen.jpg
      screen.jpg
      Размер файла:
      151,3 КБ
      Просмотров:
      13
  5. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Очень сложно формулируете вопросы. )))
    не увидел этого окна, попробовал при проигрывании перейти на другую страницу (вообще нужно тестить в разных браузерах, не во всех одинаково)

    Если речь идёт о всплывающем окне при выходе со страницы, то

    Код:
    <script>
    window.onbeforeunload = function (e) {
    	var e = e || window.event;
    	// For IE and Firefox
    	if (e) {
    	  e.returnValue = 'Вы действительно хотите закрыть это окошко?';
    	}
    	// For Safari
    	return 'Вы действительно хотите закрыть это окошко?';
    };
     </script>
    или

    Код:
     <body onUnLoad="function OnExit() { 
    if (confirm ("Вы действительно хотите закрыть это окошко?")) 
    top.close();">
     
    Ratko нравится это.
Статус темы:
Закрыта.