Как я могу создать новую вкладку через browserAction, а затем выполнить скрипт - PullRequest
1 голос
/ 12 апреля 2011

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

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.

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

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

Тип приложения яДля создания требуются следующие действия:

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

Спасибо

1 Ответ

0 голосов
/ 25 мая 2011

Есть ли какая-то конкретная причина, по которой вам нужно ввести сценарий?Поскольку и 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

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

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