javascript - 如何为 chrome 扩展制作一个粘性弹出窗口
问题描述
我是 chrome 扩展的新手。我需要创建一个将外部类附加到所选标签的扩展。
例如:- 页面
<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"
}
}
这是我的背景.js
function button_clicked(tab){
let msg={
txt:"hello"
}
console.log(tab)
chrome.tabs.sendMessage(tab.id,msg);
}
这是我的 popup.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>
任何人都可以指导我寻求解决方案吗?
先感谢您
解决方案
我不认为弹出窗口打算像这样使用,而且传统的弹出窗口结构不可能。您将不得不采取丑陋的方式并将弹出内容注入页面(许多流行的扩展实际上都是这样做的)。解决此问题的更好方法是使用上下文菜单:https://developer.chrome.com/apps/contextMenus 您可以右键单击要选择的元素,例如 ublock origin 的作用:
推荐阅读
- gremlin - Gremlin - 如何根据 Edge 的属性过滤结果?
- javascript - 以编程方式将 tr html 代码插入 tbody。不显示 tr 布局
- triggers - 为 Firebird 触发 SQL Server
- subquery - 窗口函数在 MySQL Workbench 8.0 中不起作用
- flutter - java.lang.IllegalStateException: 回复已提交 | 飞镖信使 | 颤振位置
- html - Bootstrap 侧边栏在右侧展开
- python - 请求不适用于 Python AWS Lambda
- flutter - 复选框不会在 MobX 中更改其状态
- go - 如何将切片和数组组合成地图
- python - Tensorflow 和 skimage 之间的像素值差异