Я подсчитываю клики по ссылке, вызывая страницу с AJAX, но в Firefox, по-видимому, потому, что вызываемая страница никогда не загружается, по какой-то причине Firefox ее никогда не вызывает. Кажется, что нажата ссылка, а затем Firefox вызывает вызов AJAX, но почему-то, потому что страница изменяется на фактическую ссылку в href, тогда вызов AJAX никогда не отправляется (отображается красным в firebug и никаких признаков этого в Fiddler). Он отлично работает в IE & Chrome, и если я изменю ссылку на target = "_ new", то он будет работать в Firefox. Я делаю какую-то глупую ошибку?Проблема Ajax в Firefox
<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>
Почему у вас есть 'return true?' В вашем обработчике кликов? Это заставит браузер следовать ссылке, тем самым убив ваш запрос AJAX. Измените это, чтобы «вернуть false», и перенаправление в обратном вызове. –
@RocketHazmat, но пользователь никогда не попадает на эту страницу. Это останавливает выгрузку и делает так, что запрос счетчика проходит, но также нарушает связь. – Halcyon
@FritsvanCampen: вы можете перенаправить их на ссылку в обратном вызове AJAX :) –