2011-07-23

Chrome ExtensionでContentScriptを実行する際の注意点

Chrome ExtensionのContent Scriptでは、JavaScriptの変数などは他から隔絶された空間に定義されるため競合の心配がない。しかし、DOMは共有されるので注意が必要だ。たとえば、
document.body.onmousemove = myFunc;
というようにイベントを登録すると、ページや他のExtensionのイベントを上書きしてしまうので、
document.body.addEventListener(
    "mousemove", myFunc, false
);
とするべきだ。この手のバグは、すべてのWebページで問題を起こすわけではないので、テストをしても発見が難しい。

Content ScriptでDOMを操作する場合、考え得る問題のすべてを防ぐことは難しいかもしれない。しかし、DOMが共有されていることに注意してコーディングを行えば問題が生じる確率をかなり下げることができるだろう。

0 件のコメント: