2010-12-22 2 views
3

Я использую Greasemonkey для перенаправления определенных URL-адресов на другой, но я бы хотел перенаправить, прежде чем URL-адрес будет перенаправлен.Перенаправить быстрее с помощью Greasemonkey (или аналогичного механизма usercript)?

В настоящее время я использую этот простой скрипт:

//==UserScript== 
// @name Redirect Google 
// @description Redirect Google to Yahoo! 
// @include http://*.google.com/* 
//==/UserScript== 
window.location.replace("http://www.yahoo.com") 

В приведенном выше, Google появляется на секунду, а затем перенаправляется на Google. Я хочу немедленно отправиться на yahoo. Возможно ли, и как?

+1

Просто из любопытства, почему вы хотите сделать что-то подобное? Я могу думать о многих злонамеренных/злонамеренных целях, но, похоже, не имеет никаких практических соображений. –

ответ

2

Greasemonkey не является подходящим инструментом для немедленных переадресаций. (Вы делаете это для честных целей, не так ли?)

Самый простой способ, поскольку у вас, кажется, есть доступ к компьютеру жертвы, является изменение the hosts file.

(1) Добавить две записи/строки с этими значениями (окна синтаксиса):

74.6.117.48 google.com 
74.6.117.48 www.google.com 

(2) Перезапустите браузер. Для IE вам также может понадобиться очистить кеш DNS (ipconfig /flushdns в командной строке).

(3) Удалите или отключите этот сценарий GM.

(4) Google теперь будет перенаправлен на поиск в Yahoo.


В качестве альтернативы вы можете написать расширение/дополнение к браузеру. Но если это для законного, беспринципного использования; лучший, самый простой, самый гибкий (и честный) подход - оставить сценарий Greasemonkey как есть.

+0

Я хочу перенаправить «abc.com» на «google.com» и «def.com» на «youtube.com». Продолжайте, попробуйте написать файл hosts. Помните, что обе цели находятся на одном CDN. –

+0

Не самое полезное решение, так как для этого требуются права администратора и влияет на ВСЕ на компьютере, а не только на браузер. Если это будет сделано специалистом по ИТ-безопасности на компьютере с меньшим ИТ-подкованным человеком, это может вызвать у пользователя большую путаницу, поскольку адрес в браузере указывает на google.com, но страница загружает yahoo.com. Кроме того, временное отключение будет больше, чем просто отключение браузера (один клик для Greasemonkey, если у вас есть значок GM на панели инструментов браузера). –

+1

@ F-3000, правда, и я намекнул так много в этом, теперь устаревшем ответе (см. [Ответ пользователя873792] (http://stackoverflow.com/a/10662143/331508).) Но обычно, когда люди делают что-то вроде это, они хотят, чтобы это повлияло на весь компьютер. Кроме того, если это связано с вредоносными причинами, гораздо труднее повлиять на файл hosts, чем на то, чтобы обмануть жертву в установке хитрого пользовательского текста. Обратите внимание, что ОП не проверял ни один из ответов, которые могли бы сработать, если бы он имел честные намерения и желал получить доступ к целевым машинам. –

1

Redirector Надстройка для Firefox - это то, что вы должны использовать для пользовательских переадресаций в Firefox вместо Greasemonkey.

+1

Сценарии Greasemonkey доступны для Google Chrome, а также для Firefox через расширение TamperMonkey.Было бы лучше, если бы это можно было сделать с помощью Greasemonkey из-за его кросс-браузерной переносимости. –

6

Вы можете использовать @run-at document-start in the metadata blockDoc.
EG:

//==UserScript== 
// @name Redirect Google 
// @description Redirect Google to Yahoo! 
// @include http://*.google.com/* 
// @run-at document-start 
//==/UserScript== 
window.location.replace ("http://www.yahoo.com") 


Скрипт будет работать до того, как документ начинает загрузку, таким образом, прежде чем какие-либо сценарии запуска или загрузки изображений.

+0

Да, хороший ответ. Обратите внимание, что это было недоступно в то время, когда этот вопрос изначально был задан, следовательно, не-как-хорошие ответы ниже. –

Смежные вопросы