Как вы ищете строку на веб-странице с помощью JavaScript? - PullRequest
0 голосов
/ 26 сентября 2011

Я делаю сценарий javascript greasemonkey, который перенаправляет вас, когда находит определенную строку на веб-странице.Вот мой код:

// ==UserScript==<br>
// @name No 009 Sound System!<br>
// @version 1.0<br>
// @namespace http://www.cakeman.biz/<br>
// @description Warn user when about to view a youtube video with 009 Sound System audio<br>
// @include http://*/*<br>
// @copyright  2011+, Zack Marotta 
// ==/UserScript==

var result, search_term = 'somerandomsearchterm';
var str = document.URL;
var url_check = str.search(search_term);
if (url_check !== -1) {
var result = search_term;
alert(str);
    window.location = "http://www.web.site";
}

Ничего не происходит при запуске скрипта.Что я сделал не так?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2011

Вы заметили, что выполняете поиск с учетом регистра? он не сработает, если при поиске строчных букв будет только одна буква заглавной, или наоборот, если вы хотите, чтобы регистр не учитывался, вам нужен RegExp в качестве «поискового запроса».

Другое дело, что вам не нужно <br> в блоке метаданных, потому что тогда включается тот, который не работает, иначе страница должна иметь <br> в адресе для сопоставления и выполнения.

Дополнительно:! == должен работать просто отлично, но это не нужно, в этом случае подойдет! =, И настоятельно рекомендуется не использовать unsafeWindow.

0 голосов
/ 26 сентября 2011

Для некоторых конкретных функций вы должны использовать unsafeWindow вместо window в пользовательском скрипте Greasemonkey.Если вы хотите, чтобы ваш скрипт работал в GreaseMonkey и в других местах, используйте это:

var win = typeof unsafeWindow != "undefined" ? unsafeWindow : window;

Я сократил первоначальный ответ, потому что, похоже, это не ваша проблема.Скорее всего, вы забыли добавить // @include в мета-блок.

Если вашему сценарию необходимо перенаправить определенную фиксированную страницу с помощью GreaseMonkey, вы также можете сократить свой сценарий до:

// ==UserScript==
// @name Redirect
// @include *i-am-afraid-of-this-word*
// ==/UserScript==

location.href = "http://www.google.com/search?q=need-help-getting-courage";

Для получения дополнительной информации о метаблоке см .: http://wiki.greasespot.net/Metadata_block

...