9
3月
G4.1.js 顾名思义4.1是其版本号,下面胡老师带大家一起分析一下该文件的具体实现。
初看这个文件很乱,但大的门户都喜欢这样,让别人看不懂,甚至看不下去。下面我就一个个的把他拆分。
从js文件开始到定义function的一段代码的用途是加载QQ空间的页面,其中调用到了我们前2天分析的样式的cgi数据以及最开始初始化的一些变量,同时还调用到了下面定义的哪些function的一部分东西,调用function的目的是获取数据。
接下来我们看最后的代码,g_Templet(g_Templet={}这里是最开始定义)的作用是聚合了一大堆html代码的数组,其作用就是将这些代码根据模板的调用,写入指定的div层内,接下来是调用checkUserStyle()方法,它的注释说明是“全部逻辑并如checkUserStyle”,那么我们就跟着checkUserStyle()方法看看里面具体是怎么实现的呢?
checkUserStyle(){if(!top.g_Configuration||!top.g_Configuration.style){if(!window._entryCount){includeJS("http://"+g_Src_Domain+"/cgi-bin/entry_js.cgi?uin="+g_iUin,checkUserStyle);window._entryCount=true;return;}
document.write('
');window.styleError=true;return;}
window.g_loadedStyleID=g_StyleID=top.g_Configuration.style;var rigItems=top.g_Configuration.items;var skinIdx=-1;for(var i=0; i if(skinIdx==-1){rigItems=insertGlobalConfig("items",[1,1,0,0,0,0,0],true).items;skinIdx=rigItems.length-1;}
if(isStar){simpleMode=g_Configuration.simpleMode;if(simpleMode){g_StyleID=150;g_paddingLeft=0;}}
loadedFullMode=simpleMode?1:g_Configuration.fullMode;frameStyle=simpleMode?1:g_Configuration.frameStyle;rigItems[skinIdx].zindex &=(1<<6)-1;rigItems[skinIdx].zindex |=loadedFullMode?(1<<6):0;rigItems[skinIdx].zindex |=(frameStyle<<7);if(!simpleMode){lineModUp();}
setCSS(g_StyleID,loadedFullMode,true);fillBody();if(Browser.isIE){continueLoadQzone();}else{addEvent(window,"load",continueLoadQzone);}}
这样我们可以看到,他再次读取了一遍样式然后进行设置。
最后我们来说一下g文件的funtcion的一些用途,我们先来说一些常用的。
showMsgbox 是弹出div层来现在显示,而非window自带的alert方法。
loadJsonData 是通过json(比较流行的方法)来读取数据。如果读取失败,我们就会经常看见“服务器繁忙,请稍后再试.”这样讨厌的字眼。
getItemDataUrl 加载所有数据的方法,其每个方法都是返回xml数据然后在进行load的。
先写这么多吧,眼睛有点花了。。
初看这个文件很乱,但大的门户都喜欢这样,让别人看不懂,甚至看不下去。下面我就一个个的把他拆分。
从js文件开始到定义function的一段代码的用途是加载QQ空间的页面,其中调用到了我们前2天分析的样式的cgi数据以及最开始初始化的一些变量,同时还调用到了下面定义的哪些function的一部分东西,调用function的目的是获取数据。
接下来我们看最后的代码,g_Templet(g_Templet={}这里是最开始定义)的作用是聚合了一大堆html代码的数组,其作用就是将这些代码根据模板的调用,写入指定的div层内,接下来是调用checkUserStyle()方法,它的注释说明是“全部逻辑并如checkUserStyle”,那么我们就跟着checkUserStyle()方法看看里面具体是怎么实现的呢?
引用
checkUserStyle(){if(!top.g_Configuration||!top.g_Configuration.style){if(!window._entryCount){includeJS("http://"+g_Src_Domain+"/cgi-bin/entry_js.cgi?uin="+g_iUin,checkUserStyle);window._entryCount=true;return;}
document.write('
');window.styleError=true;return;}window.g_loadedStyleID=g_StyleID=top.g_Configuration.style;var rigItems=top.g_Configuration.items;var skinIdx=-1;for(var i=0; i
if(isStar){simpleMode=g_Configuration.simpleMode;if(simpleMode){g_StyleID=150;g_paddingLeft=0;}}
loadedFullMode=simpleMode?1:g_Configuration.fullMode;frameStyle=simpleMode?1:g_Configuration.frameStyle;rigItems[skinIdx].zindex &=(1<<6)-1;rigItems[skinIdx].zindex |=loadedFullMode?(1<<6):0;rigItems[skinIdx].zindex |=(frameStyle<<7);if(!simpleMode){lineModUp();}
setCSS(g_StyleID,loadedFullMode,true);fillBody();if(Browser.isIE){continueLoadQzone();}else{addEvent(window,"load",continueLoadQzone);}}
这样我们可以看到,他再次读取了一遍样式然后进行设置。
最后我们来说一下g文件的funtcion的一些用途,我们先来说一些常用的。
showMsgbox 是弹出div层来现在显示,而非window自带的alert方法。
loadJsonData 是通过json(比较流行的方法)来读取数据。如果读取失败,我们就会经常看见“服务器繁忙,请稍后再试.”这样讨厌的字眼。
getItemDataUrl 加载所有数据的方法,其每个方法都是返回xml数据然后在进行load的。
先写这么多吧,眼睛有点花了。。
Subversion的安装
php小偷示例


