【问题标题】:javascript click tracker, ahref linksjavascript 点击跟踪器,ahref 链接
【发布时间】:2012-03-12 03:33:00
【问题描述】:

我有一个为 swf 文件生成动态链接的脚本......

例如脚本将产生

<a href=" { url } / swf / file . swf ">Click File</a>

当他们点击链接时,它会在灯箱中打开 swf 文件,因此我无法使用 php 作为其客户端

我可以更改脚本以便添加

onClick="javascript: FUNCTION;"

我将如何编写一个 javascript 函数来写入名为的基本目录中的文件

'click-log.txt' 带有链接和时间戳的href...

假设点击的链接有网址

http://example.com/data/swf/file1.swf

我希望日志文件写成

1329849120 , 82.**.***.*** , /data/swf/file1.swf

我认为编写完整的文件路径更容易,但如果最简单的话,我会对文件名甚至完整的 url 感到满意....

我已经编写了这个代码,以便在页面加载时多次使用 php,但无法编写 javascript 来执行此操作.....

谢谢大家

【问题讨论】:

  • 如果我清楚地理解您,您是在尝试通过 javascript 将文件写入您的服务器吗?这是不可能的……
  • 不确切知道您要做什么,但您需要将点击发送回服务器以写入文本日志。
  • 我认为 javascript 将是使用的语言.....作为用户单击链接的客户端.....是另一种能够执行我需要写文件吗?
  • @asken,那会是 ajax,打开对将写入文件的 php 文件的请求吗?我可以很容易地编写一个 php 文件来做到这一点,如果有办法通过 ajax 加载 php 脚本和这样的 url? '/basedir/click-log.php?url= { 点击链接的 url } '
  • 请从您的标题中删除“已解决”标签并在下面发布新答案,而不是编辑您的问题。

标签: javascript function onclick flat-file


【解决方案1】:

Javascript 是一种客户端语言,它在客户端(访问者)的计算机上执行,对于这种日志记录,您应该使用像 PHP 这样的服务器端语言在您的网络服务器上创建一个日志文件。您可以尝试查看此网站以获取简单的日志功能。

http://svidhya.wordpress.com/2008/02/01/creating-and-writing-log-files/

【讨论】:

  • 正如我在我的问题中所说,我已经编写了许多脚本来写入 php 中的日志文件,但不知道如何调用客户端事件,在不刷新页面或显示任何内容的情况下加载脚本,点击链接的url参数
  • 您可以使用 ajax 来触发将创建日志文件的 php 文件。我希望这个例子有帮助:) switchonthecode.com/tutorials/simple-ajax-php-and-javascript
  • 谢谢,找到了一个更简单的教程@@w3schools.com/PHP/php_ajax_database.asp ..... 脚本编写并现在在网站上实现:) 认为 javascript 会做到这一点,但现在我知道 ajax 我会使用它很多:)
  • 很好,如果我能提供某种帮助,我很高兴,也许您至少应该考虑投票 :)
  • 正在考虑它,而不是在一个**中,但您发布的第一个答案没有帮助,应该因为您不阅读问题而真正被否决....我解释说我可以写信给轻松通过 php 文件我只需要客户端脚本来了解如何在不重新加载页面的情况下启动 php 脚本
【解决方案2】:

这进入头部(ajax 请求)

<script type="text/javascript">
function clickLog(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
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("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","click-log.php?url="+str,true);
xmlhttp.send();
}
</script>

这会打开带有url参数'str'的'click-log.php'

<a href=" { url } / file .swf " onClick="clickLog(this.href)">Click Me</a>

当点击链接时,它会打开并处理 php 文件,链接 href (this.href) 作为参数 url=

脚本甚至附带了这个.....

<div id="txtHint"></div>

如果你把这个 div 放在要点击的链接下面,它会回显 click-log.php 输出的任何内容......

这将在下面解释....

这是我的 php 文件

<?php

$url = $_GET['url'];

$time = date('U');

$ip = $_SERVER['REMOTE_ADDR'];

$fp = fopen('click-log.txt', 'a');
$fwrite = fwrite($fp, $time.' , '.$ip.' , '.$url.'
');

// --- echo 'Log Written'; --- // 

?>

这将写入文本文件“click-log.txt”的末尾,其中包含单击的链接的时间戳、ip 和 href

被注释掉的 echo 行,一旦点击链接并处理了 ajax 请求,就会将文本“Log Written”插入到“txtHint”div 中

所有使用的文件都在基本目录中,但是任何想在他们的站点上实现此脚本的人可能已经知道如何更改文件位置等

....

.....感谢提供信息的家伙....另一个成功的脚本:)

ps,现在编写脚本以漂亮的图表和饼图向我显示日志文件:lmao:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多