Действительно ли расширение Google Chrome является поигравшими в песочнице сценариями “содержания”?

У меня создалось впечатление, что content_scripts выполнялись прямо на странице, но теперь кажется, как будто существует некоторое продолжение игры в песочнице.

Я работаю над расширением для входа всего трафика XHR сайта (для отладки и других целей разработки), и в консоли, следующих работах кода сниффинга:

 var o = window.XMLHttpRequest.prototype.open;
 window.XMLHttpRequest.prototype.open = function(){
     console.log(arguments, 'open');
     return o.apply(this, arguments);
 };
 console.log('myopen');
 console.log(window, window.XMLHttpRequest, window.XMLHttpRequest.prototype, o, window.XMLHttpRequest.prototype.open);

Это регистрирует сообщение каждый раз, XHR отправляется. Когда я поместил это в расширение, однако, реальный прототип не становится измененным. По-видимому, окно. XMLHttpRequest.prototype, который видит мой сценарий, отличается от сценария фактической страницы.

Есть ли некоторый путь вокруг этого? Кроме того, это играет в песочнице поведение, зарегистрированное где-нибудь? Я озирался, но ничего не мог найти.

6
задан Kinlan 18 April 2010 в 18:49
поделиться

1 ответ

Вы не можете этого сделать. Согласно документации :

Однако сценарии содержимого имеют некоторые ограничения. Они не могут:

  • Использовать chrome. * API (кроме частей chrome.extension)
  • Использовать переменные или функции, определенные на страницах их расширений
  • Использовать переменные или функции, определенные веб-страницами или другими скриптами содержимого
  • Сделать межсайтовый XMLHttpRequests
6
ответ дан 8 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: