📄 starblogmain.js
字号:
}
}
/**
*JSON对象克隆方法 不能够克隆 function undefined 两种值
*@param {Object/Array/String/Number} obj 入值
*@return 克隆出来的新对象
*/
function objectClone(obj,preventName){
if((typeof obj)===(typeof null)){
var res=(!obj.sort)?{}:[];
for(var i in obj){
if(i!=preventName)
res[i]=objectClone(obj[i],preventName);
}
return res;
}
return obj;
}
function getCookie(name){
var r = new RegExp("(^|;|\\s)*"+name+"=([^;]*)(;|$)");
var m = document.cookie.match(r);
return (!m?"":m[2]);
}
function setCookie(name,value){
document.cookie = name+"="+value+"; path=/; ;domain=qq.com";
}
function deleteCookie(name){
document.cookie = name+"=;domain=qq.com;expires="+(new Date(0)).toGMTString();
}
var Browser = new Object();
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isIE7 = Browser.isIE && window.XMLHttpRequest;
Browser.isIE8 = Browser.isIE && window.XDomainRequest;
Browser.isMozilla = Browser.isIE?false:(typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isFirefox = Browser.isIE?false:(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
Browser.isSafari = Browser.isIE?false:(navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
Browser.isOpera = Browser.isIE?false:(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
function loadJsonData(xID,url,callback,errcallback,refresh,charset,callbackFunctionName){
if (parent.g_JData[xID] && !refresh && !parent.g_JData[xID].error) {
callback(parent.g_JData[xID]);
return;
}
charset = charset ? charset : "gb2312";
var cFN = callbackFunctionName ? callbackFunctionName : "JsonCallback";
var snd = new QZONE.JSONGetter(url, void(0), null, charset);
snd.onSuccess = function(o){
try{
callback(parent.g_JData[xID] = o);
}catch(err){
if(err.number && err.number==-2146823281){
}
}
};
if (typeof(errcallback) == 'function') {
snd.onError = errcallback;
}
snd.send(cFN);
}
function includeJS(src,option,_doc){
var s = new QZONE.JsLoader();
if (typeof(option) == 'function') s.onload = option;
s.load(src, _doc, "gb2312");
}
var callBackHsmp=new Array();
function selectXMLNode(data, path) {
return (!Browser.isIE) ? XMLselectSingleNode(data, path) : data.selectSingleNode(path);
}
function XMLselectSingleNode(o, xpath) {
var x = XMLselectNodes(o, xpath)
if (!x || x.length < 1)
return null;
return x[0];
}
function XMLselectNodes(o, xpath) {
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver(o.ownerDocument == null ? o.documentElement : o.ownerDocument.documentElement);
var result = xpe.evaluate(xpath, o, nsResolver, 0, null);
var found = [];
var res;
while (res = result.iterateNext()) {
found.push(res);
}
return found;
}
function getXMLNodeText(node) {
return node.innerText || node.textContent || node.text;
}
function loadXMLAsyncNoCache(xID, xUrl, callback, err_callback,data,returnType){return loadXMLAsync(xID, xUrl, callback, err_callback,true,data,returnType);};
function LoadXMLDataEx(itemno,url,callback,err_callback,data){return loadXMLAsync(itemno, url, callback, err_callback,false,data);};
function loadXMLAsync(xID, xUrl, callback, err_callback,nocache,data,returnType) {
var m=xUrl.match(/(^http:\/\/([a-z,A-Z,0-9,\-,_,\.]+\.qq\.com)\/)/);
if(!m){alert("不能访问非qq.com域的资源");return;}
var domain = m[0];
var host = m[2];
var proxyPageURL = domain+"proxy.html";
var f = document.getElementsByTagName("iframe");
for(var i=0;i<f.length;i++) {
var isRightProxy=false;
try{isRightProxy=f[i].src.indexOf(proxyPageURL)==0}catch(e){}
if(isRightProxy){//找到了代理页面
if(!callBackHsmp[host] && typeof callBackHsmp[host] != "undefined"){//代理页面没用回调等待队列(初始化已经完成)
frames[i].loadXMLAsync(xID, xUrl, callback, err_callback,nocache,data,returnType);
}else{
if (typeof callBackHsmp[host] == "undefined") callBackHsmp[host] = [];
callBackHsmp[host][callBackHsmp[host].length]={
"callback":callback,
"xID":xID,
"xUrl":xUrl,
"err_callback":err_callback,
"nocache":nocache,
"data":data,
"returnType":returnType
};
}
return;
}
}
if (!callBackHsmp[host]){
callBackHsmp[host]=[{
"callback":callback,
"xID":xID,
"xUrl":xUrl,
"err_callback":err_callback,
"nocache":nocache,
"data":data,
"returnType":returnType
}];
createProxy(proxyPageURL);
}
};
/**
* 创建proxy页面
* @param {String} src
*/
function createProxy(src){
var f = document.getElementsByTagName("iframe");
for(var i=0;i<f.length;i++)
if (f[i].src.indexOf(src)!= -1) return;
var i = document.createElement("iframe");
var proxyDiv = $("proxy");
if (!proxyDiv) document.body.insertBefore(i,null); else $("proxy").appendChild(i);
i.width=0;
i.height=0;
i.src=src;
i = null;
}
function doFill(templetHTML,xDoc,xLevel){
xLevel = xLevel?xLevel:0;
var r_index = /<%=index%>/g;
var r_text = /<%=text%>/g;
var r_attribute_global = /<%=@(\w+)%>/g;
var r_escape_text = /<%=#text%>/g
//#表示内容需要进行escape后插入到页面中间的脚本中去
var r_plain_text = /<%=~text%>/g
//~表示需要无格式内容,即去除所有的换行、制表符、单双引号
var r_entity_text = /<%=&text%>/g
//&表示内容需要进行text2HTML转换,吧符号转义为实体。
var isXML = !!xDoc.xml;
var stRegPrefix = "<%repeat_"+xLevel+"\\s*match=\"([^\"]+)\"[^%]*%>";
var stRegContent = "<%repeat_"+xLevel+"[^>]*%>((.|\\n)+)<%_repeat_"+xLevel+"%>";
var r_repeat_match = new RegExp(stRegPrefix);
var r_repeat_match_global = new RegExp(stRegPrefix,"g");
var r_repeat_content = new RegExp(stRegContent);
var r_repeat_match_next_level = new RegExp("<%repeat_"+(xLevel+1)+" match=\"([^\"]+)\"");
if (templetHTML.match(r_repeat_match)==null){
alert("没有找到xml节点<%repeat_"+(xLevel)+"%>");
return;
}
var arPrefix = templetHTML.match(r_repeat_match_global);
var startPosition = 0;
for (var i=0;i<arPrefix.length;i++){
var st = arPrefix[i];
var nodePath = st.replace(/^.*match=\"|\".*$/g,""); //获得xml节点路径
if (st.indexOf("preCallback")>0)
var fnPreCallBack = eval(st.replace(/^.*preCallback=\"|\".*$/g,"")); //获得预回调函数
if (st.indexOf("callback")>0)
var fnCallBack = eval(st.replace(/^.*callback=\"|\".*$/g,"")); //获得回调函数
startPosition = templetHTML.indexOf(st);
var endPosition = templetHTML.indexOf("<%_repeat_"+xLevel+"%>",startPosition);
var replaceContent = templetHTML.substring(startPosition,endPosition+13)
startPosition += st.length;
var repeatContent = templetHTML.substring(startPosition,endPosition); //获得内容模板
var nodes = isXML?xDoc.selectNodes(nodePath):objSelectNodes(xDoc,nodePath); //获得xml节点
var arContent = [];
var attributes = repeatContent.match(r_attribute_global);
if (attributes == null) attributes = [];
var repeatTimes = nodes.length;
if (st.indexOf("repeat_num")>0){
var sTimes = st.replace(/^.*repeat_num=\"|\".*$/g,"");
if(!isNaN(sTimes))
repeatTimes=Math.min(repeatTimes,parseInt(sTimes,10));
}
for (var j=0;j<repeatTimes;j++){
var node = nodes[j];
if(fnPreCallBack)fnPreCallBack(node,j);//预处理节点
var content = repeatContent;
if (repeatContent.match(r_repeat_match_next_level)!=null) //处理子节点
content = doFill(repeatContent,node,xLevel+1) // 递归调用
var st = isXML?node.text:node;
var s = content.replace(r_index,(j+1));
if(typeof st=="string"){
s=s.replace(r_text,st);
if(r_escape_text.test(s))
s=s.replace(r_escape_text,escape(st))//需要escape的内容
if(r_plain_text.test(s))
s=s.replace(r_plain_text,st.replace(/[\r\n\t'"]/g," "))//需要去除换行和制表符的内容
if(r_entity_text.test(s))
s=s.replace(r_entity_text,st.Text2HTML());//需要进行text2html转换的内容
}
for (var k=0;k<attributes.length;k++){
var attrTag = attributes[k].replace(/\W/g,"");
var attrValue = isXML?nodes[j].getAttribute(attrTag):nodes[j][attrTag];
if (attrValue==null && isXML && nodes[j].selectSingleNode(attrTag)!=null) // to verify by hyc
attrValue = nodes[j].selectSingleNode(attrTag).text;
if (attrValue==null) attrValue = "";
if(/@#/.test(attributes[k])) attrValue=escape(attrValue);//需要escape的属性
if(/@~/.test(attributes[k])) attrValue=attrValue.replace(/[\r\n\t'"]/g," ");//需要去除换行和制表符的属性
if(/@&/.test(attributes[k])) attrValue=attrValue.Text2HTML();//需要进行text2html转换的属性
s = s.replace(attributes[k],attrValue);
}
arContent[j] = s;
if (fnCallBack) fnCallBack(node,arContent,j);
}
templetHTML = templetHTML.replace(replaceContent,arContent.join(""));
}
return templetHTML;
}
// json支持
function objSelectNodes(obj,oPath){
if(/^\//.test(oPath)) oPath = oPath.substr(1);
var a = oPath.split("/");
var o = obj[a.shift()];
if(!o) return [];
if(!o.sort) o = [o];
if(a.length==0) return o;
var subPath = a.join("/");
var result = [];
for(var i=0;i<o.length;i++){
var a = objSelectNodes(o[i],subPath);
if(a && a.length>0)
result = result.concat(a);
}
return result;
}
function objSelectSingleNode(obj,oPath){
var o = objSelectNodes(obj,oPath);
return (o.length>=1)?(o[0]):(null);
}
function custom_menu_swf(idx,frameName,url){
switch(parseInt(idx)) {
case 1:location = 'http://user.qzone.qq.com/'+g_iUin;break;
case 2:location = 'http://user.qzone.qq.com/'+g_iUin+'/blog';break;
case 3:location = 'http://user.qzone.qq.com/'+g_iUin+'/music';break;
case 4:location = 'http://user.qzone.qq.com/'+g_iUin+'/msgboard';break;
case 5:location = 'http://user.qzone.qq.com/'+g_iUin+'/photo';break;
case 6:location = 'http://user.qzone.qq.com/'+g_iUin+'/home';break;
case 7:location = 'http://user.qzone.qq.com/'+g_iUin+'/admin';break;
case 8:location = 'http://user.qzone.qq.com/'+g_iUin+'/interact';break;
default:break;
}
parent.sdsFlashSW=true;
}
/**
* 发送读统计状态请求
* @param {string} url
* @param {int} t 超时时间(ms)
*/
function send_stat_request(url,t){
if (!parent.tempStatistic)
parent.tempStatistic=[];
var l = parent.tempStatistic.length;
parent.tempStatistic[l] = new Image();
with(parent.tempStatistic[l]){
onload=onerror=new Function('this.ready=true;this.onload=this.onerror=null;parent.stat_image_clean();');
}
setTimeout("parent.tempStatistic["+l+"].src = '"+url+"';",t);
}
/**
* 清理统计状态请求所使用的图片
*
*/
function stat_image_clean(){
var t=[];
for(var i=0,l=parent.tempStatistic.length;i<l;i++){
if(!!parent.tempStatistic.ready)
t.push(i);
}
for(var i=0,l=t.length;i<l;i++){
delete parent.tempStatistic[t[i]];
}
}
//小纸条公版发送页面
function showMsgSender(){
var qqnum=!!arguments[0]?arguments[0]:"";
var title=!!arguments[1]?arguments[1]:"";
var content=!!arguments[2]?arguments[2]:"";
if(!(parent.checkLogin()>10000)){ // 如果验证登录错误,将显示登录框
parent.showLoginBox('msg');
return;
}
var s=([encodeURIComponent(qqnum),encodeURIComponent(title),encodeURIComponent(content)]).join("|");
popupDialog("发送小纸条",'<iframe border="no" style="border:none;width:600px;height:422px" src="http://'+imgcacheDomain+'/qzone/admin/msg_editor.html?para='+s+'"></iframe>',580,410);
}
function addFavorUin(uin,isMyFriend){
if(!(parent.checkLogin()>10000)){ // 如果验证登录错误,将显示登录框
parent.showLoginBox("fav");
return;
}
if(!uin) uin=g_iUin;
window._addFavData = {"other_uin":uin,"uin":parent.g_iLoginUin,"main":parent.g_Main_Domain,"isMyFriend":isMyFriend,"property":parent.g_Property};
popupDialog("添加 ["+ uin + "] 为空间好友",'<iframe frameBorder="no" style="border:none;width:350px;height:218px" src="http://'+imgcacheDomain+'/qzone/friends/friend_add_popup.html"></iframe>',350,244);
}
function goQQTX(){
if(parent.checkLogin()>10000){
if(parent.g_iLoginUin==parent.g_iUin){
parent.tall("个人信息","ttinfo","http://"+parent.imgcacheDomain+"/qzone/admin/user_infomation_main.html#9");
}
else{
parent.location.href="http://user.qzone.qq.com/"+parent.g_iLoginUin+"/qqtx/";
}
}else{
if(!!parent.showLoginBox){
parent.showLoginBox("portrait");
}
}
}
function texttrn(id){
var fontMap = "舒体隶书彩云细黑新魏宋体姚体幼圆仿宋行楷";
return fontMap.substring(2*(id - 1),2*id);
}
//////////////////////////////////////////////////////// basic end
//日志全局常量/变量
var bProcessingReq = false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -