[JS]点出统计器
作者:lnsoso 发布时间:2013-07-22 03:23:24
ff 默认不让改 status
opera9 测试通过
ie6 测试通过
这东西是给统计部门用的,分析用户习惯以改良网站布局。
只是写着玩的小东西,所以很多地方不太理想。
save() 方法是保存记录的,没仔细做,应该再加个判断浏览器,然后决定用 img 还是 iframe,以保证 request 一定能发出去.
onclick() 方法是触发事件时执行的
使用方法:
在任意页面中加入
CODE:
script src="clickout.js"></script>
最好是放在 </body> 前面,目的是防止 onclick 事件覆盖。
clickout.js
CODE:
/*
* 说明:点出统计器
* 作者:邓威
* 日期:2006-07-25
* 版本:v1.0
*/
function ClickOut()
{
this.oCO = null;
this.src_onclick = null;
this.isDEBUG = true || "status"; // 改成 this.isDEBUG = "status"; 就可以在 window.status 里显示了
this.debug = function(arg) {
if( this.isDEBUG == "status" ) window.status = arg.toString();
else if ( this.isDEBUG ) alert(arg.toString());
}
this.save = function() {
var sUrl = "clickout.php?";
sUrl += "tag=" + encodeURIComponent(this.click_tag);
sUrl += "&type=" + encodeURIComponent(this.click_type);
sUrl += "&src=" + encodeURIComponent(this.click_src);
sUrl += "&text=" + encodeURIComponent(this.click_text);
this.oCO = document.createElement('<div id="ClickOut" style="width:0px;height:0px;"></div>');
document.body.appendChild(this.oCO);
document.getElementById("ClickOut").innerHTML = '<img src="' + sUrl + '" style="display: none;" width="0px" height="0px" \/>';
return true;
}
this.onclick = function(args) {
if( this.src_onclick != null ) this.src_onclick(e);
var obj = event.srcElement;
var tag = obj.tagName.toLowerCase();
this.click_id = obj.id?obj.id:null;
this.click_class = obj.className?obj.className:null;
this.click_name = obj.name?obj.name:null;
this.click_tag = tag;
this.click_parent = obj;
this.click_obj = obj;
this.click_path = tag;
if( tag == "a" ) {
this.click_type = "text";
this.click_src = obj.href;
this.click_text = obj.innerHTML;
}
else if ( tag == "img" ) {
this.click_type = "pic";
this.click_src = obj.src;
this.click_text = obj.alt;
}
else if ( tag == "font" || tag == "b" || tag == "strong" ) {
this.click_type = "text";
this.click_src = "";
this.click_text = obj.innerHTML;
}
else {
this.click_type = "layer";
this.click_src = "" ;
this.click_text = obj.innerHTML;
}
this.GetParent();
this.debug(this.click_path);
doSave();
}
this.GetParent = function() {
if( !this.click_parent.parentNode.tagName ) return;
this.click_parent = this.click_parent.parentNode;
this.click_path = this.click_parent.tagName.toLowerCase() + "[ " +
(this.click_parent.id?("ID:" + this.click_parent.id):"") +
(this.click_parent.className?(" ,CLASS:" + this.click_parent.className):"") +
(this.click_parent.name?(" ,NAME:" + this.click_parent.name):"") +
" ]" + ">" + this.click_path;
this.GetParent();
}
}
// 实例
var objCO = new ClickOut();
objCO.src_onclick = document.onclick;
function click_tmp() {
objCO.onclick();
}
function doSave() {
objCO.save();
}
// bind event
document.onclick = click_tmp;
演示:
运行代码框
[Ctrl+A 全部选择 ]
猜你喜欢
- 问:SQL Server应该怎样访问Sybase数据库的表?答:具体方法如下:1: 安装Sybase客户端版本的要求:Sybase Clie
- 即使MyISAM表格式非常可靠(SQL语句对表做的所有改变在语句返回之前被写下),如果下列任何事件发生,你依然可以获得损坏的表:&m
- 层的八条定律当然,这些并非真正的定律,而只是一些有益的忠告,使你免陷于使用层时可能的困顿中。原来有九条定律的,我们精简掉一条,还有下面的八条
- SQL Server定位于中型的数据库应用,操作较Oracle和MySQL等要相对简便,SQL Server在处理海量数据的效率,后台开发的
- 有两个服务器,装了两个数据库,一个是主的,一个是备用的,下面的的功能就将主数据库的数据库,实时同步到备份数据库上,使他们的数据内容,基本上保
- 各大著名厂家、公司的banner广告设计欣赏,尺寸468x60,gif格式!有acer,阿尔卡特,AMD,中国电信,爱立信,Greatwal
- 做项目的时候,一位同事导数据的时候,不小心把一个表中的数据全都搞重了,也就是说,这个表里所有的记录都有一条重复的。这个表的数据是千万级的,而
- ASP从发布至今已经7年了,使用ASP技术已经相当成熟,自从微软推出了ASP.NET之后就逐渐停止了对ASP版本的更新。但是由于有很多人仍然
- 视图(View)“视图”主要指我们送到Web浏览器的最终结果??比如我们的脚本生成的HTML。当说到视图时,很多人想到的是模版,但是把模板方
- XmlDocume
- 第三章 XML的术语提纲:导言 一.XML文档的有关术语 二.DTD的有关术语导言初学XML最令人头疼的就是有一大堆新的术语概念要理解。由于
- iframe的背景颜色在IE下为window的当前窗口颜色(默认白色,可以在显示外观处对其进行设置),这导致在大幅背景上插入iframe时,
- 最近,就“尊重”一词,个人小有感概。也许跟我说“尊重”一词的同事并不是这么想的,但我反思了一下自己,作为一名设计师,确实存在这些疑问(不足之
- ASP编写完整的一个IP所在地搜索类的修正文稿修正了查询方法,查询的方法和追捕的一致;只是追捕会自动更正IP。还有个函数的书写错误,也已经修
- Dreamweaver MX 2004新增加了表格宽度辅助线功能,让我们在编辑网页表格的时候能清楚地看到表格中各单元的宽度以及变化,很直观。
- python给数据加上高斯噪声一开始用MATLAB给数据加噪声很简单,就一句话:% 给数据加指定SNR的高斯噪声signal_noise =
- 正在看的ORACLE教程是:ORACLE应用经验(1)。
- 1 实验环境(1)服务端:本实验基于虚拟机win2008系统的WAMP环境进行,该环境相关配置过程参考文章《【语言环境】WAMP环境部署及优
- 本文实例讲述了php利用cookies实现购物车的方法。分享给大家供大家参考。具体分析如下:php购物车是在电子商务网站会用到的,一种像超市
- 首先说明,伪造访问来路不是什么光明正大的事情,目的就是为了欺骗服务器。原本以为给 XMLHTTP 对象增加一个 Referer 的heade