この拡張のアイコンを押すと、要素に設定されているEventListenerを全部消すサンプル。cloneNodeはEventListenerがコピーされないのを逆に利用して、document.bodyまるごとコピーするという、いささか乱暴な方法だけど。何か使い道があるかもしれない。
manifest.json{
"manifest_version": 2,
"name": "CloneNode",
"version": "0.0.1",
"background": {
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"],
"run_at" : "document_end"
}],
"browser_action": {
"default_title": "Clone"
}
}
background.jschrome.browserAction.onClicked.addListener(function (tab) {
chrome.tabs.sendMessage(tab.id, {cmd: 'clone'});
});
content.jschrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if (request.cmd === 'clone') {
var body = document.body;
var node = body.parentNode;
node.removeChild(body);
node.appendChild(body.cloneNode(true));
alert('done.');
}
});