如何有背景脚本和类似于默认弹出的东西
How to have background script and something similar to a default popup?
所以,我明白你不能有后台脚本和默认弹出在一起。如果是这样的话,我怎么能有类似的默认弹出(那里有一些简单的HTML,出现当你点击扩展的图标),并有后台脚本修改该弹出的内容?
manifest.json
"browser_action": {
"default_title": "Mark this position!",
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": [
"http://*/*",
"https://*/*"
],
"js": ["content.js"]
}
],
你绝对可以同时拥有一个弹出窗口(即default_popup
集)和背景页面。背景页面将有自己的生命周期(与"persistent": false
它是一个事件页面),弹出窗口将存在,只要它打开。
我猜你的困惑源于这样一个事实,你不能有一个弹出窗口和chrome.browserAction.onClicked
监听器在同一时间。
这是真的,但是还有其他方法可以告诉你的背景页面弹出窗口已经打开。
你可以从弹出窗口发送消息给后台页面:
// popup.js, should be included in the popup
chrome.runtime.sendMessage({popupOpen: true}, function(response) {
/* process response */
});
// background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if(message.popupOpen) {
/* do stuff */
sendResponse(response);
}
});
如果你把上面的弹出代码放在顶层,那么一旦弹出窗口打开,背景就会被通知。
虽然您可以直接从后台访问弹出窗口(参见chrome.extension.getViews
),但建议您将UI逻辑移动到弹出窗口本身,并使用上述消息传递与后台通信,并共享chrome.storage
。
相关文章:
- Javascript日期格式类似于ISO,但本地
- toBoolean方法类似于toString
- 州和城市选择框类似于国家细分页面
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- 检测演示者工具的事件,类似于onmousedown
- 类似于Prism的Knockout js框架
- 创建类似于Google analytics的分析地图
- 敲除js变量设置类似于调用函数
- 如何处理javascript中的循环引用,类似于Excel提供迭代限制的方式
- 用null填充稀疏数组(类似于压缩两个数组)
- jQuery模态弹出的行为类似于确认和警报对话框
- 如何垂直淡出文本,类似于Amazon'的产品说明
- 如何在JavaScript中创建类似于something.function()的函数
- 使Dockerfile VOLUME的行为类似于docker compose volumes
- TypeScript代码类似于揭示模块模式结构
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 有可能对对象中的所有键进行原子更新吗?类似于阵列拼接的东西
- tinyMCE删除背景图像:“"类似于magento的url的内容
- 如何有背景脚本和类似于默认弹出的东西