Внедрение скрипта Greasemonkey - PullRequest
1 голос
/ 25 февраля 2010

Я использую greasemonkey для добавления скрипта на каждую страницу, которая загружается в мой браузер. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что, если браузер перемещается с одной страницы на другую в пределах одного домена, greasemonkey больше не вводит мой скрипт. Например, Я нахожусь на google.com, поэтому, когда мой браузер загружает эту страницу, мой скрипт вводится. Теперь, скажем, я набрал строку поиска и нажал на поиск. Браузер переводит меня на другую страницу с основным URL-адресом, таким как google.com. Здесь мой сценарий не вводится.

Как мне решить такую ​​проблему.

Любая помощь / комментарии будут оценены.

Ответы [ 2 ]

4 голосов
/ 25 февраля 2010

нажмите на поиск. Браузер переносит меня на другую страницу

На самом деле это не так. В новом интерфейсе Google он фактически остался на существующей странице, но заменил форму поиска списком результатов поиска, полученных с помощью XMLHttpRequest. Затем он изменяет часть URL #fragmentIdentifier, чтобы сохранить информацию о поиске, так что вы по-прежнему можете перемещаться и добавлять закладки в URL, как если бы результаты поиска были другой страницей.

Здесь мой сценарий не вводится

Нет, но ваш скрипт все еще присутствует с момента его загрузки в форму поиска.

Если вам требуется, чтобы ваш сценарий обнаружил, что часть URL #hash изменилась и представляет собой внутреннюю навигацию, существует событие HTML5 onhashchange . Однако он поддерживается только в Firefox 3.6 (и некоторых других браузерах), поэтому для совместимости расширений со старым Firefoxen вам потребуется использовать setInterval стиль-поллер, проверяющий location.hash, чтобы определить, когда это произойдет.

0 голосов
/ 25 февраля 2010

Вы можете установить @include *, если хотите, чтобы ваш скрипт greasemonkey загружался на каждой странице

// @include        *
...