добавить HTML-элементы в DOM с помощью фонового скрипта - PullRequest
0 голосов
/ 10 августа 2011

Я хочу добавить те же самые элементы HTML в DOM документа текущей вкладки. Я хочу, чтобы эти расширенные html-элементы жили «вечно», поэтому я хочу создать их один раз и добавлять их при каждой загрузке страницы с помощью скрипта содержимого.

Я думал разместить комментарии createElement на фоновой странице. Затем при каждой загрузке веб-страницы я хочу, чтобы скрипт контента связывался с фоновым скриптом, поэтому он будет добавлять их в текущий DOM документа TAB. Это хорошая практика? Моя проблема в том, что я не знаю, как добавить HTML-элементы в DOM с фоновой страницы. Можете ли вы помочь?

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Это не может работать. Фоновая страница находится в одном процессе, а вкладка - в другом - вы не можете отправлять объекты из одного в другой, только текстовые данные (отправленные объекты автоматически преобразуются в JSON). Так что ваш лучший шанс: собрать все вместе на фоновой странице, затем получить innerHTML вашего элемента и при необходимости отправить этот текст в скрипт содержимого. Затем скрипт содержимого должен создать новый элемент и установить для его innerHTML значение, которое он получил.

0 голосов
/ 03 августа 2014

Вы должны сделать это в скрипте контента, потому что «скрипты контента» - это скрипты, которые запускаются в среде между страницей и расширением Chrome. смотри это . помните, что эти скрипты будут загружаться при каждой загрузке страницы и не будут влиять на уже открытые вкладки. Например, вы можете добавить внешние скрипты, подобные этому

var theScript = document.createElement('script');
theScript.src = "http://mybwesite.com/static/js/myscript.js"
document.body.appendChild(theScript);

пока вы добавили разрешения в манифесте:

"permissions": [
     "activeTab",
     "tabs",
      "http://*/*", "https://*/*"
  ],
  "content_scripts": [
      {
        "matches": ["<all_urls>"],
        "js": ["js/contentscript.js"]
      }
    ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...