2

問題のページはこちら: http://ezup.com/csg/gt.html

Firefox ではアラート ボックスがトリガーされますが、ページはユーザーからの入力を待たずに自動的に転送されます。これはIEとChromeで機能していますが、ChromeがCookieを認識していないようです...

    <script type="text/javascript">
        $(document).ready(function(){
            (".buy > a").click(function(){
                //alert($.cookie("firstClick"));
                if($.cookie("firstClick") != 1){
                    $.cookie("firstClick", "1");
                    alert("You will now be directed to the Shopping Cart page. Please use your browser's back button to return to the CSG store.");
                }
                else if($.cookie("firstClick") == 1){

                }

            });
        });
    </script>

    <body>
      <ul>
        <li class="buy">
            <a href="http://store.ezup.eu/ShoppingCart.asp?ProductCode=EC2HSF1010W&ProductCode=EC1010402142T">L
                <button type="button">Add to Cart</button>
            </a>
        </li>
      </ul>
    </body>
4

3 に答える 3

2

代わりに確認ダイアログに変更してください。または、関数http://api.jquery.com/event.preventDefault/にデフォルトの防止を追加します

<script type="text/javascript">
        $(document).ready(function(){
            prompt
            $(".buy > a").click(function(e){
            e.preventDefault();
                //alert($.cookie("firstClick"));
                if($.cookie("firstClick") != 1){
                    $.cookie("firstClick", "1");
                    alert("You will now be directed to the Shopping Cart page. Please use your browser's back button to return to the CSG store.");
                    window.location = $(this).attr(href);
                }
                else if($.cookie("firstClick") == 1){

                }

            });
        });
    </script>
于 2012-04-19T18:36:49.090 に答える
0

おそらく、セレクターを少し異なる方法でキャプチャする必要があります。あなたの情報源を見ると、次のことがわかります。

<li class="buy">
    <a>
        <button type="button" onclick="openURL1()" value="GO">Add to Cart</button>
    </a>
</form>
</li>

まず第一に、</form>タグは属していません。

次に、クリックイベントハンドラーを作成している場合は、ボタンにもアタッチする必要があると思います。あなたの例は、.buy > aタグへの接続を示しています。(更新:これも同様に機能することを確認し.buy > aました。)

これを試して:

$(".buy > a > button").click(function() {
    if (!confirm("Leave?")) {
        // If they 'cancel', leave them on the current page
        event.preventDefault();
        return false;
    } else {
        // Proceed with your navigation
    }
});

確認ボックスでフィドルを更新しました。

于 2012-04-19T20:11:31.790 に答える
0
window.onbeforeunload = function() {
    return "Are you sure you want to navigate away?";
}​

http://jsfiddle.net/ppumkin/BddDK/

于 2012-04-19T20:16:03.317 に答える