Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№128-10-2015 18:39:06

deniskx
Участник
 
Группа: Members
Зарегистрирован: 28-10-2015
Сообщений: 10
UA: Firefox 38.0

Помогите написать скрипт-перенаправление

Если в адресной строке https://www.google.ru/#newwindow=1&q=firefox чтобы автоматически перенаправляло на https://www.google.ru/search?newwindow=1&q=firefox
Где firefox поисковый запрос, который может меняться. То есть, чтобы добавлялся search? и убиралось #.
Это надо с window.location.href колдовать и replace, но для меня это темный лес. Помогите, пожалуйста.

Отредактировано deniskx (28-10-2015 18:46:46)

Отсутствует

 

№228-10-2015 19:43:06

deniskx
Участник
 
Группа: Members
Зарегистрирован: 28-10-2015
Сообщений: 10
UA: Firefox 38.0

Re: Помогите написать скрипт-перенаправление

Вроде вот так работает

Выделить код

Код:

window.location.href = window.location.href.replace('#', 'search?');

URL меняется, но почему то идет постоянная перезагрузка страницы.

Отредактировано deniskx (29-10-2015 09:50:11)

Отсутствует

 

№330-10-2015 01:31:57

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 41.0

Re: Помогите написать скрипт-перенаправление

Можно вот так:

Выделить код

Код:

history.replaceState("", document.title, location.href.replace("#", "search?"));

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№430-10-2015 13:35:32

deniskx
Участник
 
Группа: Members
Зарегистрирован: 28-10-2015
Сообщений: 10
UA: unknown 0.0

Re: Помогите написать скрипт-перенаправление

Infocatcher пишет

Можно вот так:

Выделить код

Код:

history.replaceState("", document.title, location.href.replace("#", "search?"));

Работает, но как-то странно в моем случае.

deniskx пишет

URL меняется, но почему то идет постоянная перезагрузка страницы.

адрес-то не проверяется на то что он уже изменён
сделай

Выделить код

Код:

if (window.location.href.indexOf("google.ru/#")!=-1){тут твоя замена}

indexOf ищет наличие указанного фрагмента и если его нет то выдаёт -1
соответственно условие получается если не равно -1 то выполнить замену

Не помогает почему-то.

Мне еще посоветовали

Выделить код

Код:

var url = window.location.href;
var re = 'google.ru/#';
var arr = url.split(re);
if(arr.length > 1){
    window.location.href = arr[0] + 'google.ru/search?' + arr[1];
}

Такой код работает. Если переходить по обычным ссылкам или вручную обновить страницу. Но в живом поиске гугла (когда выбираешь из подсказок) URL в адресной строке генерируется динамически и скрипт уже не срабатывает.
А можно написать, чтобы скрипт например раз в секунду проверял содержимое адресной строки и если обнаружено google.ru/#, то выполнял изменение?

Отредактировано deniskx (30-10-2015 13:38:02)

Отсутствует

 

№501-11-2015 02:44:47

deniskx
Участник
 
Группа: Members
Зарегистрирован: 28-10-2015
Сообщений: 10
UA: unknown 0.0

Re: Помогите написать скрипт-перенаправление

Выделить код

Код:

(function() {
 
 (function main() {
     var
         re = 'google.ru/#',
         loc = window.location,
         arr = loc.href.split(re);
 
     if (arr.length > 1) {
         loc.href = arr[0] + 'google.ru/search?' + arr[1]; return;
     }
 
     setTimeout(main, 1000);
 })();
 
 })();

Или

Выделить код

Код:

(function() {
 
 function main() {
     var
         re = 'google.ru/#',
         loc = window.location,
         arr = loc.href.split(re);
 
     if (arr.length > 1) {
         loc.href = arr[0] + 'google.ru/search?' + arr[1]; return;
     }    
 };
 setInterval(main, 1000);
 })();

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]