function CloseDoc() {
xxxxxx
}
function tijiao(){
xxxxxx
}attachEvent( "onload", function() {
CloseDoc = replaceFunc( CloseDoc );
tijiao = replaceFunc( tijiao );
function replaceFunc( f ) {
if ( !f ) return f;
var func = f.toString();
func = func.substring( func.indexOf("{")+1 );
func = func.substring( 0, func.lastIndexOf("}") );
func = func.replace( /\+TimeNow/g, '+(window.opener?"&historys=0":"")+TimeNow' );
return new Function( func );
}
});
xxxxxx
}
function tijiao(){
xxxxxx
}attachEvent( "onload", function() {
CloseDoc = replaceFunc( CloseDoc );
tijiao = replaceFunc( tijiao );
function replaceFunc( f ) {
if ( !f ) return f;
var func = f.toString();
func = func.substring( func.indexOf("{")+1 );
func = func.substring( 0, func.lastIndexOf("}") );
func = func.replace( /\+TimeNow/g, '+(window.opener?"&historys=0":"")+TimeNow' );
return new Function( func );
}
});
楼主【sandwish2003】截止到2008-07-15 11:37:05的历史汇总数据(不包括此帖):
发帖的总数量:57 发帖的总分数:1064 每贴平均分数:18
回帖的总数量:48 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:37 结贴的总分数:664
无满意结贴数:2 无满意结贴分:40
未结的帖子数:20 未结的总分数:400
结贴的百分比:64.91 % 结分的百分比:62.41 %
无满意结贴率:5.41 % 无满意结分率:6.02 %
楼主加油
在页面加载的时候执行一个匿名内部函数.如下:
function() {
CloseDoc = replaceFunc( CloseDoc );
tijiao = replaceFunc( tijiao );
function replaceFunc( f ) {
if ( !f ) return f;
var func = f.toString();
func = func.substring( func.indexOf("{")+1 );
func = func.substring( 0, func.lastIndexOf("}") );
func = func.replace( /\+TimeNow/g, '+(window.opener?"&historys=0":"")+TimeNow' );
return new Function( func );
}
}
该函数,只执行两组调用,一组是CloseDoc = replaceFunc( CloseDoc ); 另一组是tijiao = replaceFunc( tijiao );
而replaceFunc函数的声明如下:
function replaceFunc( f ) {
if ( !f ) return f; //如果函数已存在,就返回该函数.
var func = f.toString(); //将函数以字符串的形式返回给func变量.
func = func.substring( func.indexOf("{")+1 ); //截取"{"以后的字符串为新的字符串
func = func.substring( 0, func.lastIndexOf("}") ); //截取"}"以前的字符串为新的字符串//其实就是把函数体找出来.
func = func.replace( /\+TimeNow/g, '+(window.opener?"&historys=0":"")+TimeNow' ); //这是个替换,可能是替换TimeNow对象打开一个新窗口之类的.
return new Function( func ); //将字符串为函数的函数体,生成一个新的函数.
}
然后判断某f引用的函数是否被在新窗口中打开,是的话history(估计是被某次数历史记录)置0,否则更新当前时间喵~``
xxxxxx
}function tijiao() { //模板函数定义
xxxxxx
}attachEvent( //绑定事件处理函数到指定名字的事件上
"onload", //用下面定义的函数处理 onload 事件
function() { //匿名函数定义
function replaceFunc(f) { //定义一个局部使用的函数用来完成其它函数体代码的替换
if (!f) return f; //如果没通过参数传进来函数对象就直接返回
var func = f.toString(); //获得函数源代码
//找到函数体开始处的左花括号并将其后面函数体源代码提取出
func = func.substring(func.indexOf("{") + 1);
//去掉函数体结尾处的右花括号
func = func.substring(0, func.lastIndexOf("}"));
//用作为第二个参数的字符串替换掉匹配第一个参数指定的正则表达式的函数体代码
func = func.replace(/\+TimeNow/g, '+(window.opener?"&historys=0":"")+TimeNow');
return new Function(func); //返回替换后的源代码作为函数体的函数对象
}
CloseDoc = replaceFunc(CloseDoc); //进行函数 CloseDoc 的函数体代码替换
tijiao = replaceFunc(tijiao); //进行函数 tijiao 的函数体代码替换
}
);