возможно ли иметь скрипт greasemonkey, который автоматически загружается во все фреймы внутри веб-страницы? - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть требование, при котором я должен представить одинаковые / похожие данные в 10-15 форм за один раз. Я хочу создать одну страницу, на которой загружаются все эти формы, и автоматически заполнить все известные значения ... Конечный пользователь просто должен заполнить контрольные цифры, показанные для этих 15 форм ... Теперь я хочу, чтобы каждая форма ответ на запрос для загрузки в iframe на той же веб-странице.

После этого я хочу, чтобы в каждый iframe загружался простой файл js, который считывает некоторые данные из родительского документа, а также весь контент веб-страницы ответа и отправляет это с помощью XMLHttpRequest в мое веб-приложение. (Веб-приложение проанализирует содержимое ответа на отправку формы и определит, была ли отправка успешной или нет).

Скрипт, который должен быть загружен в каждый iframe (в главном окне), должен прочитать идентификатор iframe, некоторые элементы div из главного окна и весь контент этого iframe и отправить его как запрос POST в мое веб-приложение.

Можно ли реализовать такой сценарий с помощью Greasemonkey? Обратите внимание, что изначально, когда страница с iframes загружена, на этом этапе iframes остаются пустыми - на этом этапе никакие данные из iframes не должны отправляться в мое веб-приложение. Только после того, как пользователь отправит все 10 форм и все фреймы будут загружены соответствующими ответами на отправку форм, теперь js должен отправлять данные в каждом фрейме в мое веб-приложение.

Еще один вопрос - в настоящее время я планирую использовать Google Chrome с соответствующими параметрами времени выполнения, чтобы отключить ту же политику происхождения ... Но если приведенный выше сценарий можно реализовать с помощью скрипта Greasemonkey, то мне нужно будет отключить ту же Политику происхождения в Firefox также? Кроме того, в Firefox есть расширение для добавления активатора CORS на веб-страницу. Могу ли я объединить этот скрипт с кодом для вышеуказанного сценария, чтобы даже если у iframe был другой домен по сравнению с основным окном, даже тогда данные каждого iframe подан?

1 Ответ

1 голос
/ 14 сентября 2011

1 - скрипт Greasemonkey загружается на каждой странице и в фрейме, который соответствует вашему фильтру сайта. Вы можете остановить его запуск для главного окна с помощью этой команды:

if(window == window.top) return;
// else do the rest

2- Вы можете получить доступ к родительскому окну и его содержимому с помощью window.parent. и получить доступ к iframe из Parent с помощью свойства .contentWindow вашего iframe. (если у них есть сохраняемые домены)

...