如何为Chrome扩展程序制作一个粘性弹出窗口

3

我是新手,需要创建一个插件来向选定标签添加外部类。

例如:页面

<h1>extension</h1> 当单击此标记上的鼠标时,需要将外部类添加到DOM中(不应为空元素)。

为此,我正在创建Chrome扩展程序。 为了做到这一点,我需要有一个固定的弹出窗口或画布。 就像使用CSS选择器一样。

我希望我的popup.html仅在我点击关闭按钮时关闭,而不是在我点击页面元素时关闭。

我找不到固定弹出窗口的方法。 每次单击网页时,它都会关闭。

这是我的清单代码

{
"manifest_version": 2,
"name":"Spider_Extension",
"version":"1.0",
"permissions": [
    "tabs"
  ],
"content_scripts":[{
    "matches":[
        "<all_urls>"
    ],
    "js":["Content.js"]
}],

"background": {
    "scripts": ["background.js"]        
  },
"browser_action":{
    "default_icon":"get_started16.png"
 }
}

这是我的background.js文件



function button_clicked(tab){
let msg={
   txt:"hello"

}
console.log(tab)
chrome.tabs.sendMessage(tab.id,msg);



}

这是我的弹出窗口.html

<html><head>
   <title>Spider extension</title>
   <link rel="stylesheet" href="styles.css">
</head><body><label for="cars">Select Level:</label>
   <select id="levels">
       <option value="l1">L1</option>
       <option value="l2">L2</option>
       <option value="l3">L3</option>
       <option value="l4">L4</option>
   </select>
   <br>
   <button id="addLevel" style="margin:5px;">Add level</button>
   <br>
   <button id="break" style="margin:5px;">Break</button>
   <br>
   <button id="deselect" style="margin:5px;">Deselect</button>
   <br><button id="nd__close">X</button><script src="popup.js"></script>
</body></html>

有人能指导我解决方案吗?

先行感谢。


1
你的 background.js 代码片段正在显示清单内容。你可能需要更正一下... - Rene van der Lende
谢谢,我已经更改了background.js。 - ish1104
1个回答

1

我认为弹出窗口并不是用于这种情况的,传统的弹出窗口结构无法实现。你需要采取丑陋的方式将弹出窗口内容注入页面(实际上许多流行的扩展程序都是这样做的)。 更好的方法是使用上下文菜单:https://developer.chrome.com/apps/contextMenus 你可以右键单击要选择的元素,就像ublock origin一样: enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接