奥の手

JavaScriptでなんとかしようというのは手詰まり気味。
仕方ないので完全な別空間を用意する方法を検討するしか無いかなあ。問題が結構ありそうなんだが。


実装方法を詳しくは書かないが、まあ単に汚染用のIEコンポーネントを別途用意して、そちらでスクリプトを動かす、という方法。カスタムパネルを使った実績は既にある。
問題点は以下の通り

  • 複数タブでスクリプトが同時に動いた時に、汚染用のIEコンポーネントが1枚で足りるかどうか分からん。(タブ毎にもう1枚必要なら致命的)
  • 当然のことながら別空間なので、documentなどで参照されるobjectは汚染用のものになる。但しこれはタブ側のdocumentを__document等の変数名に入れておき、スクリプト内に含まれるdocumentを置換しておけば違和感なく使える。
  • document以外に何を使うか見当が付かない。windowとかuser.jsで使う?
  • DebugConsoleからスクリプトが実行できるが、どっちの空間で実行したらいいか分からん。

利点としては汚染問題解決と、GM関数のセキュリティが飛躍的に上がる。
汚染用に用意したIEコンポーネントのみexternal拡張をすればいいのだ。
これは素晴らしいことですよ!書いてるうちにオラわくわくしてきたぞ!