我希望我的 Chrome 扩展程序在用户访问网站时加载 Javascript。但目前,只有当用户单击扩展程序图标并直到扩展程序弹出窗口打开时才会执行 Javascript。
我在这个Chrome extension to load the script without clicking on icon中看到了答案问题。
我的manifest.json是:
{
"manifest_version": 2,
"name": "Javascript example",
"description": "Some description.",
"version": "1.1",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"storage"
],
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["popup.js"]
}
]
}
popup.js 是:
document.addEventListener('DOMContentLoaded', () => {
alert("Working");
});
popup.html 是:
<!doctype html>
<html>
<head>
<title>Getting Started Extension's Popup</title>
<script src="popup.js"></script>
</head>
<body>
</body>
</html>
仅当我单击扩展程序图标时(即运行 popup.html 时)才会显示警报对话框,而不是在加载页面时显示。我希望 popup.js 文件无需用户单击扩展图标即可执行。我错过了什么?
最佳答案
您的 list 有效,但 run_at
默认为 document_idle
,这意味着 DOMContentLoaded
已触发。可以通过将 run_at
指定为 document_start
来解决此问题。
{
"manifest_version": 2,
"name": "Javascript example",
"description": "Some description.",
"version": "1.1",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"storage"
],
"content_scripts": [
{
"matches": ["*://*/*"],
"run_at": "document_start",
"js": ["popup.js"]
}
]
}
关于javascript - Chrome 扩展 Javascript 仅在图标单击时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48003307/