我通過使用AJAX調用頁面來計算點擊鏈接,但顯然是因爲調用的頁面從未實際加載過,因爲某些原因,Firefox從未調用它。似乎鏈接被點擊,然後Firefox進行AJAX調用,但不知何故,因爲頁面更改爲href中的實際鏈接,所以AJAX調用從未實際發送(在firebug中顯示爲紅色,而在Fiddler中沒有顯示)。它在IE瀏覽器工作正常&鉻,如果我改變鏈接到目標=「_新」,那麼它將在Firefox中工作。我在犯一些愚蠢的錯誤嗎?Firefox中的Ajax問題
<HTML>
<HEAD>
<script type="text/javascript">
function adtrk(cde){
var ajaxRequest; // The variable that makes Ajax possible!
var r=Math.random();
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaresp = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "/atr.php?cde=" + cde + "&r=" + r, true);
ajaxRequest.send(null);
}
</script>
</HEAD>
<BODY>
<a onclick="adtrk('zip1'); return true;" href="http://www.google.com"><img src="/images/img.jpg"></a>
</BODY>
</HTML>
爲什麼你''返回true;'在你的點擊處理程序?這將使瀏覽器跟隨鏈接,從而殺死你的AJAX請求。將其更改爲'return false;',並在回調中重定向。 –
@RocketHazmat,但用戶永遠不會真的去那個頁面。這會停止卸載,並使得計數請求經過,但它也會中斷鏈接。 – Halcyon
@FritsvanCampen:你可以將它們重定向到AJAX回調中的鏈接:) –