JS букмарклет, который будет перезагружать страницу каждые 60 секунд, пока x не станет истинным - PullRequest
3 голосов
/ 03 апреля 2020

Я пытаюсь написать букмарклет, который будет перезагружать страницу (слоты доставки Amazon) каждую минуту и ​​завершать работу при соблюдении определенных условий.

Но как мне заставить l oop продолжить после перезагрузки? После первой перезагрузки l oop прекращается.

1 Ответ

1 голос
/ 03 апреля 2020

Javascript выполнение не сохраняется при загрузке страниц. Если вы запустите букмарклет, а затем страница будет заменена, у вас будет новая страница без каких-либо пользовательских настроек Javascript. Выполнение букмарклета не может продолжаться после перезагрузки страницы.

Здесь я вижу 2 основных варианта:

  • Вместо полной замены страницы, просто извлечение URL снова через Javascript. Возьмите текстовый ответ и проанализируйте его в документе с помощью DOMParser, затем изучите документ на предмет требуемого элемента / условий. (Не будет работать, если для запуска чеков требуется встроенный сайт Javascript.)
  • Используйте скрипт пользователя вместо книжного магазина. Пользовательские скрипты могут выполняться автоматически при загрузке страницы. Перед перезагрузкой установите постоянную переменную, такую ​​как флаг в sessionStorage. После перезагрузки, в начале пользовательского сценария, извлеките и проверьте флаг - если он существует, то вы «в l oop», и вы можете выполнить необходимые проверки и перезагрузить снова через 60 секунд, если это необходимо. Как только условие выполнено, очистите элемент sessionStorage, чтобы он не пытался продолжить в следующий раз, когда вам случится загрузить страницу. Единственное предостережение в том, что у вас должен быть способ инициализации сценария пользователя - возможно, он создаст кнопку на странице, чтобы запустить l oop.

Второй метод - это то, что я ' буду выбирать. Пользовательские скрипты также намного более удобны в обслуживании, чем букмарклеты IMO.

(Чтобы написать пользовательские скрипты, установите менеджер пользовательских скриптов, например Tampermonkey , нажмите «Создать новый скрипт» на странице, которую вы хотите скрипт для запуска, затем введите код, который вы хотите запускать при каждой загрузке страницы)

...