0

確認ダイアログを備えた非常に単純な 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();

    }

}

現在、コードは Chrome を含む Windows のすべてのブラウザで動作します。ただし、Mac OS の最新バージョンの Chrome で確認ダイアログがスキップされるという苦情がユーザーから寄せられています。関数は、確認ダイアログなしで実行されます。私は Mac について何も持っていないので、自分でテストすることはできませんが、人々が私に嘘をつく理由はないので、問題は本当だと思います。

なぜこれが起こっているのか、どうすれば修正できるのか誰か知っていますか?

この関数は、クリック イベントを使用してリンクから呼び出されます。

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

1 に答える 1

0

Cancel the click event of the link

<a href="#" onclick='leaveLeague(2);return false;'>Leave League</a>
于 2012-09-25T17:41:37.490 に答える