Как я могу внедрить CSS и Javascript в iframe, загруженный в расширение Chrome - PullRequest
7 голосов
/ 17 ноября 2011

У меня есть iframe в моем расширении chrome, который загружает веб-сайт, я хотел бы добавить CSS и Javascript на сайт, но только когда он загружен в мои расширения iframe (поэтому он не затрагивается, когда пользователь просматриваетсайт нормально).

Я был удивлен, что к расширениям Chrome применяются междоменные политики безопасности, когда они пытаются получить доступ к внутренним элементам iframe, даже если они могут делать междоменные запросы XHR.

Есть ли простой способ сделать это?Хотя я мог бы сделать это с помощью executeScript, но для этого требуется идентификатор вкладки.

1 Ответ

2 голосов
/ 21 ноября 2011

Единственный способ узнать, участвуете ли вы в ifrmae, это window, а не top.

if (window == top) {
  // Not in iframe
}
else {
  // In an iframe
}

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

Повтор

  1. Добавление сценария содержимого для этого URL
  2. В сценарии содержимого проверьте, если свойство окна, if (window != top) { loadContentScript() }
  3. Создайте CSS в JavaScript, если вы слишком обеспокоеныоб этом влияет.Вы не должны, хотя, если вы используете уникальные идентификаторы.

Надеюсь, это помогло, я сделаю это для нескольких моих расширений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...