Скрипт Greasemonkey, вызов функций из скрипта другой страницы - PullRequest
3 голосов
/ 18 апреля 2011

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

inмои попытки, jquery работает нормально, если я включу его в свой скрипт.но я не нахожу функции, которые были включены на странице сервера.У меня нет контроля над сервером.

в основном просто любопытно, могу ли я получить доступ к этим функциям.

в худшем случае я включу код jquery в свой скрипт, так что это не является серьезной проблемой.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

Это немного странно, но иногда вы можете запускать функции на странице, создавая HTML-элемент trigger-function и вставляя его в страницу.Затем используйте Greasemonkey, чтобы щелкнуть ссылку, если вы хотите вызвать функцию.

Например, представьте, что на странице есть функция, называемая runGame ().В начале вашего скрипта Greasemonkey у вас есть:

 var triggerHTML = "<a id=\"triggerfunction\" onclick=\"runGame()\">triggerfunction</a>";

И вы вставляете его на страницу в подходящем месте.Например, представьте, что вы нашли место, перед которым оно могло бы хорошо сидеть:

 target.parentNode.insertBefore(triggerHTML, target);

А потом, когда вы захотите запустить функцию, вы выполните

 var evt = document.createEvent("MouseEvents");
 evt.initMouseEvent("click", true, true, window, 
            0, 0, 0, 0, 0, 
            false, false, false, false, 
            0, null);
 var triggerGame= document.getElementById("triggerfunction");
 triggerGame.dispatchEvent(evt);
0 голосов
/ 12 ноября 2013

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

НО убедитесь, что вы понимаете угрозы безопасности, возникающие при использовании unsafeWindow - они описаны в http://wiki.greasespot.net/UnsafeWindow.

...