使用Javascript和PHP跟踪传出链接
我尝试过使用jQuery,但它不起作用使用Javascript和PHP跟踪传出链接,javascript,php,jquery,click,Javascript,Php,Jquery,Click,我尝试过使用jQuery,但它不起作用 <script> $("a").click(function () { $.post("http://www.example.com/trackol.php", {result: "click" }, "html"); }); </script> <a href="http://www.google.com">out</a> $(“a”)。单击(函数(){ $.post(
<script>
$("a").click(function () {
$.post("http://www.example.com/trackol.php", {result: "click"
}, "html");
});
</script>
<a href="http://www.google.com">out</a>
$(“a”)。单击(函数(){
$.post(”http://www.example.com/trackol.php“,{结果:“单击”
},“html”);
});
您可以直接链接到跟踪脚本,然后让它将响应重定向到最终目标,而不是使用JavaScript调用php跟踪脚本,如下所示:
<a href="http://www.example.com/trackol.php?dest=http://www.google.com">out</a>
<script>
$(document).ready(function() {
$("a").mousedown(function (){
new Image().src= "http://www.example.com/trackol.php?result=click";
});
});
</script>
<a href="http://www.google.com">out</a>
您不必使用JavaScript调用php跟踪脚本,只需直接链接到跟踪脚本,然后让它将响应重定向到最终目标,如下所示:
<a href="http://www.example.com/trackol.php?dest=http://www.google.com">out</a>
<script>
$(document).ready(function() {
$("a").mousedown(function (){
new Image().src= "http://www.example.com/trackol.php?result=click";
});
});
</script>
<a href="http://www.google.com">out</a>
如前所述,问题是在加载DOM后没有运行脚本。可以通过将jQuery脚本包装在
$(function(){}
中来解决此问题,如下所示:
这项工作:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Tracking outgoing links with JavaScript and PHP</title>
</head>
<body>
<p><a href="http://www.google.com/">Test link to Google</a></p>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
$(function() {
$('a').click(function() {
$.post('http://www.example.com/trackol.php', { result: 'click' }, 'html');
});
});
</script>
</body>
</html>
使用JavaScript和PHP跟踪传出链接
$(函数(){
$('a')。单击(函数(){
$.post($)http://www.example.com/trackol.php“,{result:'单击'},'html');
});
});
查看此处的操作:如前所述,问题在于加载DOM后您没有运行脚本。您可以通过将jQuery脚本包装在
$(function(){}
中来解决此问题,如下所示:
这项工作:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Tracking outgoing links with JavaScript and PHP</title>
</head>
<body>
<p><a href="http://www.google.com/">Test link to Google</a></p>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
$(function() {
$('a').click(function() {
$.post('http://www.example.com/trackol.php', { result: 'click' }, 'html');
});
});
</script>
</body>
</html>
使用JavaScript和PHP跟踪传出链接
$(函数(){
$('a')。单击(函数(){
$.post($)http://www.example.com/trackol.php“,{result:'单击'},'html');
});
});
请参见此处的操作:为了获得最佳效果,您应该改变方法中的两个方面
onmousedown
而不是单击
——这样,您可以多获得几毫秒时间来完成跟踪请求,否则浏览器可能根本无法启动到您的跟踪器的连接,因为它已经从原始页面导航出去了。缺点是,您可能会得到一些假阳性计数,因为icking用户可能无法完成单击(例如,按住鼠标按钮并将光标从链接上移开),但总的来说,考虑到更好的跟踪质量,您应该愿意做出牺牲$.post(“…”)
)而使用图像预取器(new image().src=“…”
)。在这种情况下,跟踪器不是图像这一事实并不相关,因为您不想使用生成的“图像”无论如何,您只需要向服务器发出请求。Ajax调用是一种双向连接,因此如果浏览器已经离开,则需要花费更多的时间,并且可能会失败,但是图像预取器只会将请求发送到服务器,而您是否得到一些东西并不重要<a href="http://www.example.com/trackol.php?dest=http://www.google.com">out</a>
<script>
$(document).ready(function() {
$("a").mousedown(function (){
new Image().src= "http://www.example.com/trackol.php?result=click";
});
});
</script>
<a href="http://www.google.com">out</a>
$(文档).ready(函数(){
$(“a”).mousedown(函数(){
新建图像().src=”http://www.example.com/trackol.php?result=click";
});
});
为了获得最佳效果,您应该改变方法中的两个方面
onmousedown
而不是单击
——这样,您可以多获得几毫秒时间来完成跟踪请求,否则浏览器可能根本无法启动到您的跟踪器的连接,因为它已经从原始页面导航出去了。缺点是,您可能会得到一些假阳性计数,因为icking用户可能无法完成单击(例如,按住鼠标按钮并将光标从链接上移开),但总的来说,考虑到更好的跟踪质量,您应该愿意做出牺牲$.post(“…”)
)而使用图像预取器(new image().src=“…”
)。在这种情况下,跟踪器不是图像这一事实并不相关,因为您不想使用生成的“图像”无论如何,您只需要向服务器发出请求。Ajax调用是一种双向连接,因此如果浏览器已经离开,则需要花费更多的时间,并且可能会失败,但是图像预取器只会将请求发送到服务器,而您是否得到一些东西并不重要<a href="http://www.example.com/trackol.php?dest=http://www.google.com">out</a>
<script>
$(document).ready(function() {
$("a").mousedown(function (){
new Image().src= "http://www.example.com/trackol.php?result=click";
});
});
</script>
<a href="http://www.google.com">out</a>
$(文档).ready(函数(){
$(“a”).mousedown(函数(){
新建图像().src=”http://www.example.com/trackol.php?result=click";
});
});
该脚本是在onload事件之后运行的吗?(还是在解析dom之后?),否则$(“a”)选择器将与以下链接不匹配!该脚本是在onload事件之后运行的吗?(还是在解析dom之后?),否则$(“a”)选择器将不匹配选择器将与以下链接不匹配!当然,这是假设跟踪脚本在您的服务器上。虽然这是一种可能性,但可能最好使用JS进行跟踪,因此搜索引擎会搜索正确的链接。您也可以让PHP输出普通链接,并使用JS自动为它们添加前缀,如http://www.example.com/trackol.php?dest=
。当然,这是假设跟踪脚本在您的服务器上。虽然这是一种可能性,但使用JS进行跟踪可能会更好,因此搜索引擎会搜索正确的链接。您也可以让php输出普通链接,并使用JS自动为它们添加前缀,如http://www.example.com/trackol.php?dest=
。