Google chrome Chrome Extension的基本切换
我不敢相信我仍然有基本的编程问题。。。我知道基本原理,但仍然很难实现我想到的逻辑。无论如何 我正在构建这个基本的Chrome扩展,它有一个JavaScript文件,它确实可以工作!唯一的问题是,一旦我点击图标,它将永远打开,直到我将其删除。我想添加一个基本的切换功能,但我很难得到一个工作原型。以下是我的一些想法:Google chrome Chrome Extension的基本切换,google-chrome,google-chrome-extension,toggle,togglebutton,Google Chrome,Google Chrome Extension,Toggle,Togglebutton,我不敢相信我仍然有基本的编程问题。。。我知道基本原理,但仍然很难实现我想到的逻辑。无论如何 我正在构建这个基本的Chrome扩展,它有一个JavaScript文件,它确实可以工作!唯一的问题是,一旦我点击图标,它将永远打开,直到我将其删除。我想添加一个基本的切换功能,但我很难得到一个工作原型。以下是我的一些想法: var toggle == 1; // or true, i.e. clicked if (functionName() == 1) { function functionNa
var toggle == 1; // or true, i.e. clicked
if (functionName() == 1) {
function functionName() {
Do whatever it is when clicked;
blah blah blah;
} else if (functionName() == 0) {
Turn off;
} else {};
}
switch(toggle)
{
case 1:
Do whatever it is when clicked;
blah blah blah;
break;
case 2:
Turn off;
break;
default:
error;
break;
}
若If语句和switch语句的顺序都不同,比如说案例1和案例2被交换了,我认为这不会有什么区别。我不认为switch语句是最好的方式,因为只有两个选项,打开或关闭
使用while循环来更改扩展的条件怎么样?我知道模运算符,代码可以写成:
- 1%2=错误
- 2%2=正确
- 3%2=错误等
那么一个基本的if语句就可以工作了
比如:
有人知道最好的方法吗?我已经玩过jQuery.toggle()事件,但我不认为这会让我感到惊讶。我在html文档中没有任何内容,只有一个JavaScript文件。当可以使用简单的JavaScript时,加载库,然后使用jQuery选择器var i = 1; while (i % 2 == 1) { Do whatever it is when clicked; blah blah blah; i++; }
,这就不会产生任何影响。另外,我甚至不知道这是否是正确的选择$(“chrome.browserAction.onClicked.addListener(function)”)
function trigger() {
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.windows.onFocusChanged.addListener(function(windowId) {
if (windowId != chrome.windows.WINDOW_ID_NONE) {
chrome.tabs.query({ active:true, windowId:windowId }, function(tabs) {
if (tabs.length == 1) {
var tab = tabs[0];
chrome.tabs.reload(tab.id);
}
});
}
});
});
}
var functionOn = false;
chrome.browserAction.onClicked.addListener(function() {
if (functionOn === false) {
document.addEventListener('DOMContentLoaded', function() {
trigger();
});
functionOn = true;
} else if (functionOn === true) {
document.addEventListener('DOMContentLoaded', function() {
//nothing...
});
functionOn = false;
}
if语句目前不起作用,my Extension可用于此调用,而不是末尾的if语句:
document.addEventListener('DOMContentLoaded', function() {
trigger();
});
在不确切知道应该切换什么的情况下,很难给出一个超级详细的答案,但简而言之,您只需要在背景脚本中添加以下内容:
var functionOn = false;
chrome.browserAction.onClicked.addListener(function() {
if (functionOn === false) {
doSomething();
functionOn = true;
} else {
functionOn = false;
// Don't do anything.
}
});
通过将变量“functionOn”放在后台页面中,状态是持久的。您可能已经意识到这一点,但要创建后台脚本,只需将其添加到清单文件:
"background": {
"scripts": ["background.js"]
},
很难说你想用切换做什么,但是doSomething()基本上就是你想执行的任何动作,无论是通过内容脚本注入代码还是显示弹出窗口等等。变量function on之间的逻辑很难理解。我认为编写的代码会自动将var设置为false。如果是这种情况,为什么在函数为false时触发该函数?我对上面的布尔逻辑有一种理解。此外,是否只有一个if选项?我想在else部分的开头指定var。O、 和===一次vs=?令人困惑我更新了帖子,试图让这听起来更容易。