Stackoverflowには非常に興味深い機能があります。新しい質問を書き始めた後、ページから移動しようとすると、このページを離れることを確認するアラートが表示されます。これは、新しいアドレスを入力してアドレスバーに入力する場合でも、進む/戻るボタンを使用する場合でも機能します。
これはどのように作動しますか?アラート自体についてはあまり知りたくありません。具体的には、アラートをトリガーしているイベント/コードについて知りたいと思います。
ありがとう!
Stackoverflowには非常に興味深い機能があります。新しい質問を書き始めた後、ページから移動しようとすると、このページを離れることを確認するアラートが表示されます。これは、新しいアドレスを入力してアドレスバーに入力する場合でも、進む/戻るボタンを使用する場合でも機能します。
これはどのように作動しますか?アラート自体についてはあまり知りたくありません。具体的には、アラートをトリガーしているイベント/コードについて知りたいと思います。
ありがとう!
textareaが修正されると、フラグが設定されます。unload()
ウィンドウのイベントでフラグがチェックさalert()
れ、必要に応じてが表示されます。このようなもの:
var textAmended = false;
$("textarea").change(function() {
textAmended = true;
});
$(window).unload(function() {
if (textAmended) {
alert('You started writing a question...');
}
});
これは通常、textarea、inputなどの値をチェックし、以下のように文字列を渡すか何も渡さずにwindow.onunload関数を変更することによって行われます。
$('textarea').change(function() {
if( this.value == "" ) {
window.onbeforeunload = null;
}else{
window.onbeforeunload = "Are you sure you want to leave?";
}
});
これにより、組み込みの確認がトリガーされます。
現在のウィンドウから移動するか、ウィンドウを閉じるだけで確認が必要だと思います。
$(window).on('beforeunload', function() {
return 'You have unsaved changes.';
});
window.onbeforeunload = exit;
function exit() {
var t = 0;
$("textarea").each( function() {
var v = $(this).val();
if(v!="") {
t=t+1;
}
});
if(t>=1) {
return "You Have Some text written in textareas. Still you want to leave?";
}
}
あなたが望んでいたのは、最善かつ純粋な方法です!