通常のHTMLだとonbeforeunloadイベントで行う実装をHTML上で実装しても呼ばれません。
単一ページナビゲーションって縦横100%のインラインフレームのような感覚?
遷移はしているようにみえるけどアドレスバーはずっとdefault.htmlな感じです。
navigater.jsのnav.back();の部分(4か所)を書き換えます。
4つもあるのは画面を戻る方法が4つだから。
・BackSpace キーが押され、入力フィールドによってキャプチャされない場合
・Alt キーと文字キーまたは Alt キーと右方向キーの組み合わせ
・マウスの後ろボタンを使用
・戻るボタン
backPage();
//nav.back();
そしてbackPageを実装。
特定の画面にいた時だけ別の処理に分岐。
あとはopenGoOut()で確認ダイアログだしたり。
var nav = WinJS.Navigation;
function backPage() {
debug("backPage:" + nav.location);
var loc = nav.location;
if (loc == "/pages/special/special.html") {
openGoOut();
} else {
nav.back();
}
}