Как переписать функцию на веб-странице с расширением Chrome? - PullRequest
3 голосов
/ 19 февраля 2012

Предположим, что веб-сайт имеет глобальное пространство имен Q = {}, и под ним есть функция: Q.foo

Я бы хотел переписать эту функцию в моем расширении Chrome, поэтому, когда веб-страница вызывает Q.foo, она будет делать то, что мне нравится.

Я пытался написать:

Q.foo = function(){
    alert("over written");
}  

со скриптом контента. Но это не работает ....
спасибо.

Ответы [ 2 ]

6 голосов
/ 19 февраля 2012

Основная проблема заключается в том, что расширение Chrome существует в отдельной среде, которая была создана для того, чтобы разработчики расширений не могли ввернуть javascript существующей страницы и наоборот.

Однако, отвратительные люди могут сделать это:

document.head.innerHTML += '<script>Q.foo = function(){alert("over written");}</script>';

По сути, это то, что он добавляет тег dom в dom, который затем мгновенно выводится в контексте страницы.

1 голос
/ 19 февраля 2012
Q.prototype.foo = function(){
  alert("over written");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...