我有一个 Chrome 扩展程序,当单击浏览器操作时,它将在“body”上绑定mousedown 事件侦听器。而当再次点击浏览器动作时,会解除mousedown事件的绑定。
但是由于某种原因,即使日志显示代码已执行,unbind 也无法正常工作。我也尝试过 bind()/unbind() 方法,但无济于事。
任何帮助表示赞赏。谢谢!
清单.json
{
"name": "My Extension",
"description": "View Font Info",
"manifest_version": 2,
"version": "1",
"permissions": ["tabs", "http://*/*", "https://*/*"],
"browser_action": {
"default_icon": "f.png"
},
"background": {
"scripts": ["background.js"]
}
}
背景.js
var toggle = false;
chrome.browserAction.onClicked.addListener(function(tab) {
toggle = !toggle;
if(toggle){
chrome.browserAction.setIcon({path: "f.png", tabId:tab.id});
chrome.tabs.executeScript(tab.id, {file:"jquery.js"}, function(){
chrome.tabs.executeScript(tab.id, {file: "on.js"});
});
}
else{
chrome.browserAction.setIcon({path: "", tabId:tab.id});
chrome.tabs.executeScript(tab.id, {file:"jquery.js"}, function(){
chrome.tabs.executeScript(tab.id, {file: "off.js"});
});
}
});
on.js(绑定事件的脚本)
console.log("On");
$("body").on('mousedown.custom', function(e){
e.preventDefault();
// do something...
});
off.js(解除绑定事件的脚本)
console.log('off');
$("body").off('mousedown.custom');