JavaScript: Есть ли способ запустить функцию javascript удаленно? Как onClick

Я ищу способ запустить событие JavaScript на удаленной веб-странице, не открывая его в браузере.

Я имею в виду, позвольте мне объяснить мою ситуацию: что я сейчас делаю, у меня два сценария, запущенные на GreaseMonkey на определенных веб-страницах. Сценарий А на странице А, скрипт В на стр. В.

Сценарий A продолжает отправлять xmlHttpRequests на страницу B, он получает данные, обрабатывает reg-exp и делает некоторые сравнения. Когда мое условие на Script A выполнено, я отправляю window.open для открытия страницы B.

На странице B я запускаю сценарий B, скрипт B снова проверяет содержимое страницы B, проверяет, удовлетворено ли ИСПОЛЬЗУЕМОЕ условие сценария A, выполняет двойную проверку, а затем запускает события щелчка, которые мне нужны.

Проблема слишком медленная. Мне нужно его оптимизировать. Слишком медленно открывать страницу B и загружать ее содержимое, например, много изображений, фонов, стилей css и т.д. Для того, чтобы быть точным, требуется несколько секунд, чтобы загрузить страницу, от 5 до 10 секунд. Мне нужно, чтобы это было менее 1 или 2 секунд.

Есть ли способ запустить события JavaScript на странице B без загрузки всего содержимого страницы B?

Спасибо.

2 ответа

Не надежно.

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

Чтобы запустить событие на странице, его нужно будет загрузить в браузер. Вы могли бы ускорить работу с Phantom или другим браузером без браузера.

Я бы рекомендовал последний, если вы хотите производительность и качество по сравнению с greasemonkey в любой день. Это немного сложнее, но если это постоянное сравнение, автоматизирующее его в фоновом режиме и от браузера рендеринга, кажется лучшим.


мое решение может быть не идеальным, но вы можете сделать следующий (как вы на GreaseMonkey)

1- Страница XMLHTTPrequest B

2- сделать сравнение

3-, если это выполнено, добавьте innerHTML, который вы получили от первого XMLHTTPrequest, в новый div/iframe, который вы создаете, и делаете невидимым

4- там вы можете запустить событие click в div/iframe

licensed under cc by-sa 3.0 with attribution.