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

Background.html

chrome.browserAction.onClicked.addListener(function(tab) 
{
   chrome.tabs.create({url: "Dreamer.html"}, function(tab)    //Dreamer.html is a file in my extension
   { 
       //Add a script
       chrome.tabs.executeScript(tab.id, {file:'Dreamer.js'});
   });
});

Manifest.json

{
   "name" : " Dreamer",
   "version" : "0.1",
   "description" : "My extensionr",
   "browser_action" : {"default_icon" : "App/AppData/Images/icon.png", "default_title":"Start   Dreamer" },
   "background_page" : "App/AppData/background.html",
   "content_scripts" :[{"matches":["http://*/*"],"js":["app/view/UIManager.js"]}],
   "permissions": [ "cookies", "tabs", "http://*/*", "https://*/*" ]
}

Я получаю эту ошибку на фоновой странице

Error during tabs.executeScript: Cannot access contents of url "chrome-extension://femiindgnlfpdpajimkmldpgpccngfmd/Dreamer.html". Extension manifest must request permission to access this host.

Мне бы очень хотелось узнать, как создать вкладку (новая вкладка) и сразу запустить скрипт

РЕДАКТИРОВАТЬ:

Приложение, которое я создаю, требует следующих действий:

-Разрешить пользователю создавать новую вкладку, нажав кнопку действия в браузере
-При создании новой вкладки открывается файл с моим расширением (Dreamer.html)
-Добавить сценарий содержимого или выполнить сценарий в новой вкладке

Благодарность

1
Kennedy 12 Апр 2011 в 09:31

1 ответ

Есть ли какая-то конкретная причина, по которой вам нужно внедрить скрипт? Поскольку и Dreamer.html, и Dreamer.js кажутся жестко закодированными, вы можете просто включить <script type="text/javascript" src="Dreamer.js"></script> в первый, верно?

В качестве дополнительного преимущества, если вам нужно отправить информацию на фоновую страницу, вы можете получить к ней прямой доступ с помощью chrome.extension.getBackgroundPage() вместо того, чтобы настраивать сложные прослушиватели, которые обычно также поставляются со сценариями контента.

Внедрение сценариев содержимого предназначено для внедрения сценариев за пределами изолированной программной среды расширения. Однако Dreamer.html является частью расширения.

Изменить

Если вам нужен (громоздкий) пример того, как выполнить скрипт на странице расширения, см. здесь:

http://code.google.com/p/chromium/issues/detail?id=30756#c11

Однако я не думаю, что это применимо к вашему случаю.

0
brymck 25 Май 2011 в 15:37