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

改为将其更改为确认对话框。或将 prevent default 添加到函数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 回答