onbeforeunload と onhashchange の両方を使用して、2 つの別々のことを行います。
1) onhashchange は、ナビゲーションにアプリケーション コントロールを使用するようユーザーに求める特別なツールチップを表示します。
2) onbeforeunload は、ユーザーがアプリを閉じるか、別の URL に移動しようとするとデータが失われることをユーザーに警告するために使用されます。
この実装は、IE10 を除くすべてのブラウザーで完全に機能します。IE10 では、何らかの理由で onhashchange の前に onbeforeunload が起動し、間違ったものが表示されます。
これは既知の問題ですか? IE10 について知っておくべき特別なことはありますか?
それが役立つ場合、実装はDojoにあります...