Webページを離れることに関する警告メッセージを表示しようとしていますが、フレームセット内にネストされています。
どうやらwindow.onbeforeunloadは、ブラウザにルートページとしてWebページをロードした場合にトリガーされますが、フレームセット内にロードされた場合はトリガーされません。
編集:Chrome7またはSafari5では機能しませんが、InternetExplorer8およびFireFox3.6では機能します。Chrome7やSafari5でも動作させるための修正/回避策はありますか?
私は何が間違っているのですか?
これは私が試したものです:
function closePageWarning()
{
return "Are you sure you want to leave this page?"
}
window.onbeforeunload = closePageWarning
テストドキュメント:
test1.html(unbeforeunloadスクリプトのあるページ)
<html>
<body>
<script language="javascript">
function closePageWarning()
{
return "Are you sure you want to leave this page?";
}
window.onbeforeunload = closePageWarning;
</script>
<a href="http://www.bitbucket.org">bitbucket</a>
</body>
</html>
test2.html(フレームセット)
<html>
<frameset cols="20%, 80%">
<frame name="menu" src="test3.html" />
<frame name="content" src="test1.html" />
</frameset>
</html>
test3.html(メニュー、スクリプトによるフレームの変更のトリガー)
<html>
<body>
<a target="content" href="http://www.bitbucket.org">bitbucket</a>
</body>
</html>
テスト方法:
- ブラウザにtest1.htmlをロードし、リンクをクリックすると、質問が表示されます。
- ブラウザにtest2.htmlをロードし、いずれかのリンクをクリックしてください。質問がないことに注意してください。
テスト済み:
- GoogleChrome7.0.517.44-動作しません
- InternetExplorer8.0.7600.16385-動作します
- Safari5.0.2-動作しません
- FireFox3.6.12-動作します