Подтвердить что ты не робот

Программно открыть страницу настроек Chrome.html.

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

4b9b3361

Ответ 1

chrome.tabs.create({ url: "options.html" });

Update

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

chrome.tabs.create({ 'url': 'chrome://extensions/?options=' + chrome.runtime.id });

Ответ 2

Существует новый метод, который включен начиная с Chrome 42:

chrome.runtime.openOptionsPage(function callback)

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

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

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

Ответ 3

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

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});
    }
});

Ответ 4

Без использования API-интерфейса Chrome возможны только стандартные веб-интерфейсы:

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

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

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

Для этого требуется жестко кодировать идентификатор расширения.

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

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