gpt4 book ai didi

javascript - 单击图标禁用扩展

转载 作者:行者123 更新时间:2023-12-02 15:34:57 29 4
gpt4 key购买 nike

我正在尝试编写一个 Chrome 扩展程序,只需单击浏览器操作图标即可禁用该扩展程序。我想为用户提供此选项,因为触发警报时扩展程序会引发 JavaScript 警报。问题是,即使清除警报后,我仍然看到警报被发出。另外,我想将其用作开关的图标单击未按预期工作。

我已在manifest.json中声明background.js作为我的后台javascript文件

"background": {
"scripts": ["alert.js"],
"persistent": true
},
"browser_action": {
"default_icon": "images/green.png",
"default_action": "popup.html",
"default_title": "Toggle Productiwitty"
}

背景.js

var ExtensionOn = true;

function SwitchOn(e)
{
chrome.alarms.create("Alarm", {delayInMinutes: 0.1, periodInMinutes: 1} );
}

function SwitchOff(e)
{
chrome.alarms.clear("Alarm");
}

function showpopup()
{
alert("Inside function showpopup");
console.log("alert shown");
}

function click(e)
{
if(ExtensionOn)
{
SwitchOff();
console.log("switched off");
chrome.browserAction.setBadgeText({text: "Off"});
}
else if(!ExtensionOn)
{
SwitchOn();
console.log("switched on");
chrome.browserAction.setBadgeText({text: "ON"});
// Replace 15.0 with user selected time in minutes
}
//Toggle ExtensionOn
ExtensionOn = ~ ExtensionOn;
}

if(ExtensionOn)
{
chrome.alarms.onAlarm.addListener(showpopup);
}
chrome.browserAction.onClicked.addListener(click);

我的“default_action”:“popup.html”调用popup.js来创建警报

chrome.alarms.create("Alarm", {delayInMinutes: 0.1, periodInMinutes: 1} );

这个想法是,一旦加载扩展程序,它应该每 1 分钟显示一个弹出窗口,如果您单击该图标,扩展程序将暂时禁用。再次单击该图标时,将定期发出相同的警报。

最佳答案

ExtensionOn = true
> true
ExtensionOn = ~ ExtensionOn
> -2
Boolean(ExtensionOn)
> true

如果您想切换 bool 值,请使用 !,而不是 ~

if(ExtensionOn)
{
chrome.alarms.onAlarm.addListener(showpopup);
}

仅在页面首次加载时调用一次。如果当时扩展未打开,则不会添加监听器,并且永远不会调用该函数。我建议将 if 测试移至 showpopup 中。

关于javascript - 单击图标禁用扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019030/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com