我有一个带有确认对话框的非常简单的 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>