2017-01-13 17 views
-2

Я пытаюсь изменить функцию js (внутри HTML) или добавить прослушиватель событий на один, когда он используется (из других частей сайта).добавить прослушиватель событий в js в HTML с Greasemonkey или заменить скрипт

замена объекта js путем изменения innerHTML не будет работать, даже когда я установил его в "", я все еще могу получить доступ к этой функции. Eventlistener, похоже, тоже не работает с ними.

Есть ли способ изменить это?

сценарий я хочу изменить:

<head><title></title> 
<script language="JavaScript"> 
    function add(message) { 
      alert(message); 
    } 
</script></head> 

изменения: изменен скрипту

+0

. Где исходный код для ответа на ваш вопрос? * "(внутри HTML)" * Какой HTML? Вы не указали какой-либо исходный код, чтобы не работать с/debug .... – NewToJS

+0

Теперь вы добавили некоторый исходный код .. для чего вы хотите изменить эту функцию? Где другие соответствующие элементы? Что вызывает или вызывает эту функцию? Что такое 'message, scrolltag' и где находится элемент' container' ... – NewToJS

+0

@NewToJS только что изменил скрипт действительно не имеет значения, что в функции, когда я могу получить к ней доступ – basicn00b

ответ

0

можно обернуть и переопределять оригинальное имя функции. Например, чтобы повлиять на код, который вы опубликовали выше, вы бы сделали что-то вроде:

var _add = add; 
add = function(){ 
    // do other stuff 
    _add(); 
} 
+1

, который работает, когда i Я использую функцию добавления из консоли, но она не работает, когда сам сайт открывает функцию – basicn00b

+0

может greasemonkey получить доступ к контексту страницы главной страницы? AFAIK, расширения имеют отдельный «оконный» объект с главной страницы и должны быть доступны через другой var, например http://stackoverflow.com/questions/2303147/injecting-js-functions-into-the-page-from- a-greasemonkey-script-on-chrome –

+0

сейчас работает над добавлением «// @ run-at document-start» спасибо! – basicn00b