nik*_*hil 1 google-chrome-extension
我正在开发一个 chrome 扩展。每次我重新加载页面或打开新标签时都会调用我的脚本。我是如何让它只加载一次扩展程序的,即当 chrome 启动并在浏览器关闭时将所有值重置为默认值。
我确实浏览了 stackoverflow 中的大部分可用链接,但无法将其集中到我的情况。
清单文件
"background":{
"scripts":["common.js","example.js"],
"persistent":true
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["myscript.js"]
}
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"permissions": ["http://*/*",
"https://*/*",
"contextMenus",
"tabs"]
Run Code Online (Sandbox Code Playgroud)
在我的一个后台 javascripts 中,我正在触发一个事件:
例子.js
var DOMContentLoaded_event = document.createEvent("Event");
DOMContentLoaded_event.initEvent("DOMContentLoaded", true, true);
window.document.dispatchEvent(DOMContentLoaded_event);
Run Code Online (Sandbox Code Playgroud)
上面的代码是为了触发DONContent,这样用户就不用每次启动Chrome浏览器都点击扩展图片了。
每次我的页面加载时都会调用触发事件,无论是重新加载同一页面还是打开另一个选项卡,都会调用该事件。我知道我在这里遗漏了一些重要的东西。我确实在 localStorage 中设置了一些东西。没有用(我的意思是,该事件在刷新网页时被调用)。我确实尝试了 "persistent": true 选项,但徒劳无功。
我能知道我错过了什么吗?
尼基尔
根据您的评论,您正在尝试为 Chrome 启动和加载扩展程序时注册一个监听器。您可以通过chrome.runtime.onStartup事件实现这一目标:
当安装了此扩展的配置文件首次启动时触发。启动隐身配置文件时,不会触发此事件,即使此扩展程序在“拆分”隐身模式下运行。
它很简单:
chrome.runtime.onStartup.addListener(function () {
/* Do some initialization */
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3362 次 |
| 最近记录: |