Можно ли оставить Chrome PopUp открытым? - PullRequest
0 голосов
/ 23 июня 2019

Я разрабатываю расширение для Chrome, и определенная функция позволяет пользователю нажимать кнопку, чтобы выбрать элемент на текущей странице (так же, как функция наведения в Dev Tools).Однако единственный способ, которым он работает, - это если пользователь нажимает на страницу, которая, в свою очередь, скрывает расширение.Есть ли способ сохранить всплывающее окно расширения при той же функциональности?Я могу подумать о других способах решения этой проблемы, таких как внедрение всплывающего пользовательского интерфейса в DOM текущей страницы, но я бы предпочел иметь его во всплывающем окне, если это возможно.

Вот поток:

popup.js

let selectElem = document.getElementById('select_element_button');
  selectElem.addEventListener("click", function(){
    chrome.runtime.sendMessage("hello");
  });

background.js

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
    console.log(message + "from bg");
    if(message == "hello"){
        chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
            chrome.tabs.sendMessage(tabs[0].id,"toContent");  
        });
    }
});

content.js

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) {
    if(message == "toContent"){
        document.addEventListener("mouseover", (event) => {
            event.target.style.backgroundColor = "rgba(121, 204, 255, 0.4)";
        });
        document.addEventListener("mouseout", (out) => {
            out.target.style.backgroundColor = "";
        });
    }
});
...