2011-01-26 9 views
0

ユーザーが戻るボタンをクリックした場合に処理するwindow.onbeforeunloadを使用するユーザーに、JavaScriptのダイアログボックスを表示しています。 私のコードは問題に取り組んでいますが、[このページを残す]をクリックすると、ユーザーをリダイレクトするのに苦労しています(メッセージはブラウザによって異なります)。javascriptダイアログボタンがクリックされてリダイレクトするかどうかを検出する

// Set check var false to begin with 
// This is set true on submit btns using onclick event 
submitFormOkay = false; 

// If we are on check-availability page 
if(window.location.href.indexOf('check-availability') != -1) 
{ 
    // If back button is clicked 
    window.onbeforeunload = function() 
    { 
      // Only show dialog if submit btn wasn't clicked 
      if (!submitFormOkay) 
      { 
       // Show dialog 
       return "Use of the browser back button will lose form data.\nPlease use the 'Previous' button at the bottom of the form."; 

       // If 'leave' this page was clicked' 
       // do 'window.location = window.location' 
      } 
    } 
} 

ありがとうございます。

デビッド

答えて

0

彼らは「このページを残す」をクリックした場合、ブラウザはユーザーがダイアログがポップアップする前に実行しようとしていたものは何でも行動完了します。

しかし、彼らが戻るとナビゲートすると、あなたのサイトにはまだ表示されますか?だから、そのページが再要求されたときに(キャッシュされていなければ)何をする必要があれば何でもできる。

言い換えれば...ユーザーがBackをクリックした場合にサーバー側で検出し、Previousをクリックした場合は何でもしてください。

+0

こんにちはジョー、ありがとう。私はjavascriptを使って検出できることを期待していました。私はあなたが提案したことをすることができると思う、私は再びこのdrupalフォームapiにハックする必要があることを意味! – davewilly

+0

助けてくれてありがとうジョーイ、私はそこに魅力的ではないとは思わなかった! – davewilly

+0

問題ありません。残念ながら、警告を無視する場合は、ユーザーの動作を上書きすることはできません。しかし、少なくともあなたはそれらに警告する必要がありますので、何が起こるのかは自分の責任です! – joeytwiddle

関連する問題