Как я понимаю, в открытую вкладку нельзя добавить iFrame, если это системная страница. Используя this для справки, мое расширение открывается как iFrame. Однако я хотел бы, чтобы расширение открывалось как всплывающее окно (что, по-видимому, является поведением по умолчанию для большинства расширений) , если вкладка не является инъекционной.
Я бы предположил, что это функция, которую я мог бы вызовите файл background.js
, вместо того, чтобы отправлять сообщение на content-script.js
, но ищите Документы . Я не могу найти ничего подходящего.
chrome.browserAction.onClicked.addListener(function(){
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id,"toggle");
})});
SimilarWeb пример этого. -Кликните на SimilarWeb, когда есть только пустая вкладка:

-Кликните на SimilarWeb с веб-сайтом, загруженным во вкладку:

Этот вид работает, но только один раз при каждом открытии браузера background.js
-
chrome.browserAction.onClicked.addListener(function () {
chrome.tabs.query({active: true, currentWindow: true}, function (tabs) {
if (tabs[0].url.includes("chrome://")) {
chrome.browserAction.setPopup({popup: "index.html"});
} else {
chrome.tabs.sendMessage(tabs[0].id, "toggle");
}
})
});