Chrome の localStorage 実装にバグがありますか? 仕様と、Opera と IE9 での動作の違いをよく説明しています。
しかし、今何ですか?
それは、実装がブラウザー上の一方向である場合に、別の方法であることに依存する私のコード (任意のコード) を本当に台無しにします。
イベントを呼び出したウィンドウでイベントが発生しているかどうかをテストするにはどうすればよいですか?
私が把握できる唯一のことは、 setTimeout() を使用して待機し、それを呼び出すウィンドウでイベントが発生しているかどうかを確認し、そうでない場合は何かを行うことです。ただし、ストレージ イベントが立て続けに呼び出されると、ひどいバグが発生する可能性があります。
私の場合、すべてのウィンドウではなく、それを呼び出すウィンドウに対してイベントを発生させる必要があります。仕様に正しく実装されている Chrome では、これは localStorage.setItem() に追加した後に追加の関数を追加するだけの問題ですが、IE、Firefox3.6、および Opera では、それを実質的に 2 回行うことになります。ブラウザに基づいて異なるコードを使用することもできますが、ブラウザのバージョンではなく互換性をテストする必要があります。
localStorage をサポートするすべてのブラウザーに「パッチ」を適用して、すべてのブラウザーで同じ方法でイベントを処理する方法はありますか?