为什么Mac上的Chrome会跳过这段代码中的确认对话框?

时间:2012-09-25 17:36:07

标签: javascript macos google-chrome

我有一个非常简单的Javascript / AJAX函数和一个确认对话框,因此用户必须在代码执行之前进行确认:

function leaveLeague(league_id) {

    if(confirm('Are you sure you want to leave this league?')) {

        if(window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange = function () {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("curr_leagues").innerHTML = xmlhttp.responseText;
            }
        }

        xmlhttp.open("GET", "ajax/leave_league.php?league_id=" + league_id, true);
        xmlhttp.send();

    }

}

现在,该代码适用于Windows上的所有浏览器,包括Chrome。但是,我收到用户的投诉,在Mac OS上的最新版Chrome中跳过了确认对话框。该函数只执行而没有确认对话框。我没有任何关于Mac的东西,所以我无法测试自己,但没有理由让人骗我,所以我认为问题是真的。

有谁知道为什么会发生这种情况以及如何解决这个问题?

使用点击事件从链接调用该函数:

<a onClick='leaveLeague(2);'>Leave League</a>

1 个答案:

答案 0 :(得分:0)

取消链接的点击事件

<a href="#" onclick='leaveLeague(2);return false;'>Leave League</a>