У меня есть следующие довольно простые Greasemonkey скрипт:Запуск Greasemonkey скрипт на странице без HTML
var newloc = location.href.replace(/^(.*)-xyz-(.*)$/i, "$1$2");
if (newloc != location.href)
location.href = newloc;
То есть, в основном обрезает «-XYZ-» из URL и снова загружает страницу. Поэтому, если вы перейдете к «www.example.com/a-xyz-b/», он перезагрузит страницу на «www.example.com/ab/».
Теперь скрипт работает нормально, если страница является HTML-страницей. Но если я открою файл .jpg или что-то, что не HTML, то скрипт не запускается вообще.
Это просто ограничение greasemonkey? Что это работает, только если страница на самом деле text/html? Каков альтернативный способ выполнения этой функции?
Хм, интересно. Я действительно делал это только как услугу для клиента, и я не знаю всех подробностей, но спасибо ... вы дали мне несколько идей для продолжения. Если я получу больше, я обновлю вопрос :) –
Начиная с Firefox 27.0.1, по крайней мере для содержимого 'application/json', сценарий greasemonkey отлично срабатывает, когда JSON завершил загрузку, без каких-либо дополнительных действий. Кроме того, если это не срабатывает, попробуйте [изменить '@ run-at' на' document-start'] (http://stackoverflow.com/q/4978736/521032), а затем посмотреть ' readyState' или, в крайнем случае, использовать таймер. – Septagram