Chrome 代码末尾的扩展弹出窗口刷新
Chrome extension popup refresh at the end of code
我编写了一个运行良好的 chrome 扩展程序(获取特定页面上的 cookie 信息,获取数据并在弹出窗口的文本区域中打印)。但是在添加其他检查后,我的弹出窗口停止打印我的数据。
我尝试搜索原因,发现我的弹出窗口在我的代码结束后立即刷新。为了测试,我只是编写了以下简单文件,但问题仍然存在。
刚刚安装后,当我打开弹出窗口时,我可以在控制台日志中正确看到“背景”文本。说得好。
但是当我点击按钮时,我很快在控制台日志中看到文本“测试”,但弹出窗口立即刷新,然后控制台重置信息,我的按钮再次返回而不是保持不可见。
我不知道为什么以前没有刷新弹出窗口。你有想法吗 ?有什么不明白的吗?
感谢您的帮助。
Manifest.json
{
"manifest_version": 3,
"name": "Test extention",
"description": "Test extension",
"version": "1.0",
"icons": {
"16": "./img/icon_16.png",
"32": "./img/icon_32.png",
"48": "./img/icon_48.png",
"64": "./img/icon_64.png",
"128": "./img/icon_128.png"
},
"background": {
"service_worker": "./background.js"
},
"action": {
"default_popup": "./popup.html",
"default_title": "Test Extention",
"default_icon": {
"16": "img/icon_16.png",
"32": "img/icon_32.png",
"48": "./img/icon_48.png",
"64": "img/icon_64.png",
"128": "img/icon_128.png"
}
},
"permissions": [
"declarativeContent",
"storage",
"cookies",
"tabs",
"activeTab",
"scripting"
]
}
background.js
console.log("background");
popup.js
const startOfScript = () => {
optionsForm.startlabel.style.display = "none";
console.log("test");
};
optionsForm.startlabel.addEventListener("click", startOfScript);
popup.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div class="container">
<p class="title">Fred's AI Marketing extention</p>
<form id="optionsForm">
<button id="startlabel">Récupérer les données</button>
</form>
<script src="./popup.js"></script>
</div>
</body>
</html>
回答(谢谢@wOxxOm)
只需删除 popup.html
中的
该节点会同时自动刷新表单和弹窗。
我编写了一个运行良好的 chrome 扩展程序(获取特定页面上的 cookie 信息,获取数据并在弹出窗口的文本区域中打印)。但是在添加其他检查后,我的弹出窗口停止打印我的数据。
我尝试搜索原因,发现我的弹出窗口在我的代码结束后立即刷新。为了测试,我只是编写了以下简单文件,但问题仍然存在。
刚刚安装后,当我打开弹出窗口时,我可以在控制台日志中正确看到“背景”文本。说得好。
但是当我点击按钮时,我很快在控制台日志中看到文本“测试”,但弹出窗口立即刷新,然后控制台重置信息,我的按钮再次返回而不是保持不可见。
我不知道为什么以前没有刷新弹出窗口。你有想法吗 ?有什么不明白的吗?
感谢您的帮助。
Manifest.json
{
"manifest_version": 3,
"name": "Test extention",
"description": "Test extension",
"version": "1.0",
"icons": {
"16": "./img/icon_16.png",
"32": "./img/icon_32.png",
"48": "./img/icon_48.png",
"64": "./img/icon_64.png",
"128": "./img/icon_128.png"
},
"background": {
"service_worker": "./background.js"
},
"action": {
"default_popup": "./popup.html",
"default_title": "Test Extention",
"default_icon": {
"16": "img/icon_16.png",
"32": "img/icon_32.png",
"48": "./img/icon_48.png",
"64": "img/icon_64.png",
"128": "img/icon_128.png"
}
},
"permissions": [
"declarativeContent",
"storage",
"cookies",
"tabs",
"activeTab",
"scripting"
]
}
background.js
console.log("background");
popup.js
const startOfScript = () => {
optionsForm.startlabel.style.display = "none";
console.log("test");
};
optionsForm.startlabel.addEventListener("click", startOfScript);
popup.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div class="container">
<p class="title">Fred's AI Marketing extention</p>
<form id="optionsForm">
<button id="startlabel">Récupérer les données</button>
</form>
<script src="./popup.js"></script>
</div>
</body>
</html>
回答(谢谢@wOxxOm)
只需删除 popup.html
中的该节点会同时自动刷新表单和弹窗。