Chrome拡張のサンプル(要素のEventListenerを削除する)

この拡張のアイコンを押すと、要素に設定されている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.');
    }
});