この問題の詳細に入る前に、状況を明確にしたいと思います。私たちの Web 分析会社は大規模なサイトのコンサルタントとして働いており、(SCRIPT タグを 1 つ追加する以外に) ページ自体を制御することはできません。
既存のスクリプトは、ページ上の「新しい」(addEventListener または attachEvent) ハンドラーを完全に認識しない「古い」方法 (element.onclick = blah; の派手なバージョンで、元のハンドラーも実行する) を使用してハンドラーをインストールします。これを修正して、多くのカスタム開発を必要とせずにスクリプトをより多くのサイトで実行できるようにしたいと考えています。
ここで最初に考えたのは、独自のスクリプトで addEventListener/attachEvent を使用することでしたが、これには問題があります。クライアントのサイトで「古い」方法を使用してハンドラーを設定すると、「新しい」方法でインストールしたハンドラーが消去されます。すべてのブラウザーをテストしたわけではありませんが、簡単で汚いテストでは、IE7 と FF3 の両方でこれが発生することが示されています。また、ページのイベント ハンドラーが既に設定されている後に「新しい」方法を使用すると、それらのハンドラーが消去される可能性があるというリスクもあります。
だから私の質問は、ページ上の他のイベントハンドラーがどのようにインストールされているかに関係なく機能する addEventListener/attachEvent を使用して Javascript でイベントハンドラーを追加するために使用できる安全な手法は何ですか?
覚えておいてください: スクリプトがインストールされているサイトを変更する方法はありません。(このような質問に対するデフォルトの答えは常に「すべてを同じように書き直すだけです」であるため、強調しなければなりません。)