前面,目的是防止 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('
');
 document.body.appendChild(this.oCO); 
 document.getElementById("ClickOut").innerHTML = '';
 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;
演示:
运行代码框