ブラウザのアクションがクリックされたときに「本体」にマウスダウンイベントリスナーをバインドするChrome拡張機能があります。ブラウザ アクションが再度クリックされると、mousedown イベントのバインドが解除されます。
しかし、何らかの理由で、コードが実行されたとログに記録されていても、バインド解除が機能していません。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"]
}
}
background.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');