Загрузка страницы и выполнение JS на ней... из буклета JS?
По существу я пытаюсь
- перейти на веб-страницу
- подождите, пока загрузится эта страница.
- выполнить JS-функцию/предупреждение/что-либо на этой странице
все из одного букмарклета. Это возможно? Кажется, я не могу работать на меня, но это может быть из-за моих личных недостатков.
Ответы
Ответ 1
Самый простой способ сделать это без необходимости использования Greasemonkey или чего-то подобного - написать JS, чтобы он проверял, находится ли он на соответствующей странице, и идет туда, если это не так. Если он находится на странице, он выполняет JS/alert/whatever. Вы должны использовать букмарклет дважды, но вам нужен только один букмарклет, и он все равно может быть быстрее/проще, когда пользователь делает щелчок/независимо от себя. Таким образом, код будет выглядеть так:
if(this.document.location.href != "[url]") { //Are we on the page yet?
this.document.location.href = "[url]"; // If not, go there
}
else {
if (document.readyState === "complete") { //Wait for the page to finish loading
// DO STUFF
}
}
Ответ 2
Вы хотите установить расширение Greasemonkey для Firefox. (или gm4ie для IE, или greasemetal для Chrome (PersonalizedWeb также работает гораздо проще для Chrome), greasekit для Safari, или user.js для Opera)
Greasemonkey позволяет делать именно это... автоматически запускать script при каждой загрузке страницы (вы можете выбрать, на каких страницах/сайтах он загружается)
В противном случае вам нужно будет щелкнуть свой букмарклет при каждой загрузке страницы, чтобы запустить script.
Ответ 3
Учитывая, что нет лучшего решения, я подумал, что я бы отбросил, что Opera изначально поддерживает скрипты пользователей для запуска на каждой загрузке страницы. Оттуда вы могли бы script проверить текущий url и запустить, если на соответствующей странице.
См. здесь документацию