2011-07-28 9 views
5

で動作していないよう:http://www.weloveflyers.co.uk/order.phponbeforeunloadは、私は、このページに取り組んでいますサファリやChrome

誰かが自分の注文の詳細を入力し、クリックした後、「レッツゴー!」注文情報がキャプチャされ、確認のために表示され、次に「支払う」と表示されます。ボタンをクリックすると、そのページの下にあるボタンが表示されます(何かを支払う必要はありません)。

「Let's Go」ボタンをクリックする前に、しかし、すでに「Let's Go!」をクリックした場合(すなわち注文をした)が、まだ「Pay Now!」をクリックしていない。私は彼らと確認することができるようにしたい "あなたは本当に残したいですか?あなたが支払うことなく出ると、あなたの注文はキャンセルされます!

注文が既に行われているときに機能することを念頭に置く前に、ブラウザがそれをサポートするかどうかを確認するために、ちょうど非常に基本的なオンデフォローロード設定を試みました。私はSafariでこの機能を散発的にサポートしているようですが、一般的には機能しませんが、時にはChromeで動作しません。

ご迷惑をおかけして申し訳ございません。

おかげで、

フィル

P.S.あなたの情報のために、ライブページからすべてのonbeforeunload機能を削除しました。なぜなら、私はそれが正しいと思うまで、訪問者を困らせたくないからです。

UPDATE:ここでは最新の試みです:MDN documentation 1として

var needToConfirm = true; 
window.onbeforeunload = confirmExit; 
function confirmExit() { 
    if (needToConfirm) 
    return "Message"; 
}; 
+0

あなたはonbeforeunloadイベントをバインドするために使用しているコードを投稿してください。 – rkaregaran

+0

私の最近の試みはこれを使っていました: \t \t 'code' '/ code'実験中に、「Let's Go!」を使用してneedToConfirmをfalseに設定しようとしました。ボタンを押して「True」に設定し、「Pay Now」ボタンを使用して適切な瞬間にのみトリガする方法としてFalseに戻します。 –

+0

あなたのlattestの試行はChromeでうまく動作します。 – serg

答えて

6

、私はちょうど上のOS X上でクロム11(13)とSafari 5で以下を試してみました、とChrome 14でWindows 7、および(あなたのコードは、上記の場合と同様に!)それは私のために正常に動作します:あなたがあなたのページに上記のコードを使用している場合

window.onbeforeunload = function (e) { 
    e = e || window.event; 

    // For IE and Firefox prior to version 4 
    if (e) { 
    e.returnValue = 'Any string'; 
    } 

    // For Safari 
    return 'Any string'; 
}; 

何がそれはまったく同じように、どうなりますか?

どのChromeとSafariのバージョンを使用していますか?

+1

はい、今動作しています!ありがとう! – Phuong

関連する問題