Программно открыть страницу options.html плагина Chrome? - PullRequest
29 голосов
/ 22 июля 2011

Есть ли способ открыть страницу options.html плагина Google Chrome через Javascript в background.html?

Ответы [ 4 ]

49 голосов
/ 20 февраля 2015

Доступен новый метод , начиная с Chrome 42 :

chrome.runtime.openOptionsPage(function callback)

Откройте параметры вашего внутреннего номерастраницы, если возможно.

Точное поведение может зависеть от ключа options_ui или options_page вашего манифеста или от того, что Chrome поддерживает в данный момент.Например, страница может быть открыта в новой вкладке, в пределах chrome://extensions, внутри приложения, или она может просто сфокусироваться на открытой странице параметров.Это никогда не приведет к перезагрузке страницы вызывающего абонента.

Если ваше расширение не объявляет страницу параметров или Chrome не смог создать ее по какой-либо другой причине, для обратного вызова будет установлен lastError.

* 1020.*
48 голосов
/ 22 июля 2011
chrome.tabs.create({ url: "options.html" });

Обновление

Начиная с версии 40, Chrome теперь использует новый всплывающий диалог опций со страницы управления расширениями вместо выделенных страниц опций (которые устарели).Вы можете добиться того же эффекта, изменив URL.

chrome.tabs.create({ 'url': 'chrome://extensions/?options=' + chrome.runtime.id });
24 голосов
/ 21 апреля 2013

Открыть или переключиться на уже открытую страницу параметров (вместо открытия дубликата):

var optionsUrl = chrome.extension.getURL('options.html');

chrome.tabs.query({url: optionsUrl}, function(tabs) {
    if (tabs.length) {
        chrome.tabs.update(tabs[0].id, {active: true});
    } else {
        chrome.tabs.create({url: optionsUrl});
    }
});
1 голос
/ 22 июля 2011

Без использования Chrome API, только стандартных веб-API, возможно следующее:

window.open("chrome-extension://ghipmampnddcpdlppkkamoankmkmcbmh/options.html")

Или, чтобы перейти от видимой страницы к странице расширения:

location.href = "chrome-extension://ghipmampnddcpdlppkkamoankmkmcbmh/options.html"

Это требует жесткого кодирования идентификатора расширения.

Вероятно, единственный раз, когда это предпочтительнее, чем использование Chrome API, это когда он вызывается из контекста без расширения (а не из оригинала) из фонастраница »сценарий).Однако обратите внимание, что веб-контекст не может перейти на страницу chrome-extension://* (это приведет к about:blank), если он не объявлен как веб-доступный .

В таком сценарии одинследует также рассмотреть возможность взаимодействия с веб-страницей либо через скрипт содержимого, либо вместо внешнего обмена сообщениями .

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