我有以下链接 -
<a href="ex.com" onClick="return popitup2('<?php echo $var3; ?>');">Grab Coupon</a>
我已经像这样初始化了$ var3
$var3 = "brand1,camp2";
函数popitup2()的代码是 -
<script language="javascript" type="text/javascript">
function popitup2(id) {
$.ajax({
url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
success: function(){
alert( "Data Saved: " );
}
});
newwindow2=window.open('','name','height=225,width=350');
var tmp = newwindow2.document;
....更多代码...... ......最后......
return true;
}
</script>
现在当我点击链接ex.com打开时没有任何警告,即没有通过ajax和javascript之后运行php脚本。如果我从函数popitup2()中删除ajax调用,则剩余的javascript会被正确执行。
答案 0 :(得分:1)
同意您之前的回答,即您正在执行异步Ajax请求。 从文档中Async参数可能无法在两种情况下工作:跨域请求或dataType:“jsonp”。 如果您正在进行跨域请求,我只能建议:
<a href="ex.com" onClick="return popitup2('<?php echo $var3; ?>', this);">Grab Coupon</a>
<script type="text/javascript">
function popitup2(id, link) {
$.ajax({
url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
context: link,
success: function(){
alert( "Data Saved: " );
window.location = $(this).attr("href");
}
....
return false;
});
通过这种方法,我们可以确保跟踪点击。 这种方法还有另一个问题,即跟踪服务器应该很快,否则用户将等待很长时间直到导航到资源。
答案 1 :(得分:0)
这里发生的是您正在执行异步AJAX请求,这意味着当您执行请求时,您的其余功能将继续运行。当AJAX结果返回时,它会触发alert
函数中的success
,但由于您点击了链接,因此您已经离开该页面。
尝试在ajax函数的参数中添加async: false
以等待结果在继续之前返回,如下所示:
$.ajax({
url: "http://jainkunal.com/wordpress/wp-content/trackclicks/clickcounter.php"+"?"+id,
async: false,
success: function() {
alert( "Data Saved: ");
}
});
答案 2 :(得分:0)
您正在向JS函数传递两个参数。但功能原型(第一行)只接受一个。这导致JS错误。