有没有高手,帮忙逆一下JS代码,转成C#能用的。非常感谢!

ittxl1 2012-01-05 02:01:29

/* 当执行了这个后 QQVIP.security.getAntiCSRFToken();
返回了一个字符串,但经过了哪些处理得到的这个字符串呢?
JS如下(因为太长,分成几次贴出来)(原js地址http://imgcache.qq.com/ac/club/qqvip/v2.0/qqviplib_2.0.0.js?ver=2011 )
能看懂的帮下忙吧(这个链接是在http://vip.qq.com/act/index.html这个页面头部得到的)
好像是加密码了的
应该是QQ号 + 验证MD5_KEY 再加密码的字符串
但是不知道怎么加的密
*/

window.QZFL=window.QZONE=window.QZFL||window.QZONE||
{ }
;
QZFL.version="2.1.0.7";
QZFL._qzfl=2.107;
QZFL.emptyFn=function()
{ }
;
QZFL.returnFn=function(v)
{
return v;
}
;
(function()
{
var ua=QZFL.userAgent=
{ }
,agent=navigator.userAgent,nv=navigator.appVersion,r,m,optmz;
ua.adjustBehaviors=QZFL.emptyFn;
if(window.ActiveXObject)
{
ua.ie=6;
(window.XMLHttpRequest||(agent.indexOf('MSIE 7.0')>-1))&&(ua.ie=7);
(window.XDomainRequest||(agent.indexOf('Trident/4.0')>-1))&&(ua.ie=8);
(agent.indexOf('Trident/5.0')>-1)&&(ua.ie=9);
(agent.indexOf('Trident/6.0')>-1)&&(ua.ie=10);
ua.isBeta=navigator.appMinorVersion&&navigator.appMinorVersion.toLowerCase().indexOf('beta')>-1;
if(ua.ie<7)
{
try
{
document.execCommand('BackgroundImageCache',false,true);
}
catch(ign)
{ }
}
QZFL._doc=document;
optmz=function(st)
{
return function(fns,tm)
{
var aargs;
if(typeof fns=='string')
{
return st(fns,tm);
}
else
{
aargs=Array.prototype.slice.call(arguments,2);
return st(function()
{
fns.apply(null,aargs);
}
,tm);
}
}
;
}
;
window.setTimeout=QZFL._setTimeout=optmz(window.setTimeout);
window.setInterval=QZFL._setInterval=optmz(window.setInterval);
}
else if(document.getBoxObjectFor||typeof(window.mozInnerScreenX)!='undefined')
{
r=/(?:Firefox|GranParadiso|Iceweasel|Minefield).(\d+\.\d+)/i;
ua.firefox=parseFloat((r.exec(agent)||r.exec('Firefox/3.3'))[1],10);
}
else if(!navigator.taintEnabled)
{
m=/AppleWebKit.(\d+\.\d+)/i.exec(agent);
ua.webkit=m?parseFloat(m[1],10):(document.evaluate?(document.querySelector?525:420):419);
if((m=/Chrome.(\d+\.\d+)/i.exec(agent))||window.chrome)
{
ua.chrome=m?parseFloat(m[1],10):'2.0';
}
else if((m=/Version.(\d+\.\d+)/i.exec(agent))||window.safariHandler)
{
ua.safari=m?parseFloat(m[1],10):'3.3';
}
ua.air=agent.indexOf('AdobeAIR')>-1?1:0;
ua.isiPod=agent.indexOf('iPod')>-1;
ua.isiPad=agent.indexOf('iPad')>-1;
ua.isiPhone=agent.indexOf('iPhone')>-1;
}
else if(window.opera)
{
ua.opera=parseFloat(window.opera.version(),10);
}
else
{
ua.ie=6;
}
if(!(ua.macs=agent.indexOf('Mac OS X')>-1))
{
ua.windows=((m=/Windows.+?(\d+\.\d+)/i.exec(agent)),m&&parseFloat(m[1],10));
ua.linux=agent.indexOf('Linux')>-1;
ua.android=agent.indexOf('Android')>-1;
}
ua.iOS=agent.indexOf('iPhone OS')>-1;
}
)();
QZFL.object=
{
map:function(object,scope)
{
return QZFL.object.extend(scope||window,object);
}
,extend:function()
{
var args=arguments,len=arguments.length,deep=false,i=1,target=args[0],opts,src,clone,copy;
if(typeof target==="boolean")
{
deep=target;
target=arguments[1]||
{ }
;
i=2;
}
if(typeof target!=="object"&&typeof target!=="function")
{
target=
{ }
;
}
if(len===i)
{
target=QZFL;
--i;
}
for(;
i<len;
i++)
{
if((opts=arguments[i])!=null)
{
for(var name in opts)
{
src=target[name];
copy=opts[name];
if(target===copy)
{
continue;
}
if(deep&©&&typeof copy==="object"&&!copy.nodeType)
{
if(src)
{
clone=src;
}
else if(QZFL.lang.isArray(copy))
{
clone=[];
}
else if(QZFL.object.getType(copy)==='object')
{
clone=
{ }
;
}
else
{
clone=copy;
}
target[name]=QZFL.object.extend(deep,clone,copy);
}
else if(copy!==undefined)
{
target[name]=copy;
}
}
}
}
return target;
}
,each:function(obj,callback)
{
var value,i=0,length=obj.length,isObj=(length===undefined)||(typeof(obj)=="function");
if(isObj)
{
for(var name in obj)
{
if(callback.call(obj[name],obj[name],name,obj)===false)
{
break;
}
}
}
else
{
for(value=obj[0];
i<length&&false!==callback.call(value,value,i,obj);
value=obj[++i])
{ }
}
return obj;
}
,getType:function(obj)
{
return obj===null?'null':(obj===undefined?'undefined':Object.prototype.toString.call(obj).slice(8,-1).toLowerCase());
}
,routeRE:/([\d\w_]+)/g,route:function(obj,path)
{
obj=obj||
{ }
;
path=String(path);
var r=QZFL.object.routeRE,m;
r.lastIndex=0;
while((m=r.exec(path))!==null)
{
obj=obj[m[0]];
if(obj===undefined||obj===null)
{
break;
}
}
return obj;
}
,bind:function(obj,fn)
{
var slice=Array.prototype.slice,args=slice.call(arguments,2);
return function()
{
obj=obj||this;
fn=typeof fn=='string'?obj[fn]:fn;
fn=typeof fn=='function'?fn:QZFL.emptyFn;
return fn.apply(obj,args.concat(slice.call(arguments,0)));
}
;
}
,ease:function(src,tar,rule)
{
if(tar)
{
if(typeof(rule)!='function')
{
rule=QZFL.object._eachFn;
}
QZFL.object.each(src,function(v,k)
{
if(typeof(v)=='function')
{
tar[rule(k)]=v;
}
}
);
}
}
,_easeFn:function(name)
{
return'$'+name;
}
}
;
QZFL.namespace=QZFL.object;
QZFL.runTime=
{
isDebugMode:false,error:QZFL.emptyFn,warn:QZFL.emptyFn
}
;
QZFL.console=function(expr)
{
if(window.console)
{
if(console.assert)
{
console.assert.apply(null,arguments);
}
else
{
expr||console.log.apply(null,slice.call(arguments,1));
}
}
}
;
QZFL.console.print=function(msg)
{
window.console&&console.log(msg);
}
;
QZFL.widget=
{ }
;
QZFL.object.map(QZFL.object,QZFL);
QZFL.object.each(["widget","string","util"],function(value)
{
QZFL[value]=
{ }
;
}
);
QZFL.namespace=QZFL.object;
window.ua=window.ua||QZFL.userAgent;
QZFL.config=
{
debugLevel:0,defaultDataCharacterSet:"utf-8",DCCookieDomain:"qq.com",domainPrefix:"qq.com",gbEncoderPath:"http://imgcache.qq.com/ac/club/qqvip/toolpages/",FSHelperPage:"http://imgcache.qq.com/ac/club/qqvip/toolpages/fp_gbk.html",defaultShareObject:"http://imgcache.qq.com/ac/club/qqvip/toolpages/getset.swf"
}
;
QZFL.css=
{
getClassRegEx:function(className)
{
var re=QZFL.css.classNameCache[className];
if(!re)
{
re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');
QZFL.css.classNameCache[className]=re;
}
return re;
}
,convertHexColor:function(color)
{
color=/^#/.test(color)?color.substr(1):color;
var reColor=new RegExp("\\w
{
2
}
","ig");
color=color.match(reColor);
if(!color||color.length<3)
{
return[0,0,0]
}
var r=parseInt(color[0],16);
var g=parseInt(color[1],16);
var b=parseInt(color[2],16);
return[r,g,b];
}
,styleSheets:
{ }
,getStyleSheetById:function(id)
{
try
{
return QZFL.dom.get(id).sheet||document.styleSheets[id];
}
catch(e)
{
return null
}
}
,getRulesBySheet:function(sheetId)
{
var ss=QZFL.css.getStyleSheetById(sheetId);
if(ss)
{
try
{
return ss.cssRules||ss.rules;
}
catch(e)
{
return null
}
}
else
{
return null
}
}
,getRuleBySelector:function(sheetId,selector)
{
var _ss=this.getStyleSheetById(sheetId);
if(!_ss.cacheSelector)
{
_ss.cacheSelector=
{ }
}
;
if(_ss)
{
var _rs=_ss.cssRules||_ss.rules;
var re=new RegExp('^'+selector+'$',"i");
var _cs=_ss.cacheSelector[selector];
if(_cs&&re.test(_rs[_cs].selectorText))
{
return _rs[_cs];
}
else
{
for(var i=0;
i<_rs.length;
i++)
{
if(re.test(_rs[i].selectorText))
{
_ss.cacheSelector[selector]=i;
return _rs[i];
}
}
return null;
}
}
else
{
return null;
}
}
,insertCSSLink:function(url,id)
{
var dom=document,cssLink=dom.createElement("link");
if(id)
{
cssLink.id=id;
}
cssLink.rel="stylesheet";
cssLink.rev="stylesheet";
cssLink.type="text/css";
cssLink.media="screen";
cssLink.href=url;
dom.getElementsByTagName("head")[0].appendChild(cssLink);
return cssLink.sheet||cssLink;
}
,insertStyleSheet:function(sheetId)
{
var ss=document.createElement("style");
ss.id=sheetId;
document.getElementsByTagName("head")[0].appendChild(ss);
return ss.sheet||ss;
}
,removeStyleSheet:function(id)
{
var _ss=this.getStyleSheetById(id);
if(_ss)
{
var own=_ss.owningElement||_ss.ownerNode;
QZFL.dom.removeElement(own);
}
}
,hasClassName:function(elem,cname)
{
return(elem&&cname)?new RegExp('\\b'+cname+'\\b').test(elem.className):false;
}
,swapClassName:function(elements,class1,class2)
{
function _swap(el,c1,c2)
{
if(QZFL.css.hasClassName(el,c1))
{
el.className=el.className.replace(c1,c2);
}
else if(QZFL.css.hasClassName(el,c2))
{
el.className=el.className.replace(c2,c1);
}
}
if(elements.constructor!=Array)
{
elements=[elements];
}
for(var i=0,len=elements.length;
i<len;
i++)
{
_swap(elements[i],class1,class2);
}
}
,replaceClassName:function(elements,sourceClass,targetClass)
{
function _replace(el,c1,c2)
{
if(QZFL.css.hasClassName(el,c1))
{
el.className=el.className.replace(c1,c2);
}
}
if(elements.constructor!=Array)
{
elements=[elements];
}
for(var i=0,len=elements.length;
i<len;
i++)
{
_replace(elements[i],sourceClass,targetClass);
}
}
,addClassName:function(elem,cname)
{
if(elem&&cname)
{
if(elem.className)
{
if(QZFL.css.hasClassName(elem,cname))
{
return false;
}
else
{
elem.className+=' '+cname;
return true;
}
}


...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxzh0817 2012-01-05
  • 打赏
  • 举报
回复
这么多---------
五更琉璃 2012-01-05
  • 打赏
  • 举报
回复
这工作量太大了
烟波钓 2012-01-05
  • 打赏
  • 举报
回复
我去 掩面而过
cf_nxcxy 2012-01-05
  • 打赏
  • 举报
回复
你这是从网上下载的js文件吧
机器人 2012-01-05
  • 打赏
  • 举报
回复
在.net里调用js函数获得结果,你贴这么多代码,谁有时间一行行给你翻啊。
梦里独赏花 2012-01-05
  • 打赏
  • 举报
回复
虽然看不懂 但是还是帮你顶一下 愿你早日解决难题
ittxl1 2012-01-05
  • 打赏
  • 举报
回复
太长了,发不了 。。
ittxl1 2012-01-05
  • 打赏
  • 举报
回复


eight:doc.body.clientHeight;
}
,getClientWidth:function(doc)
{
doc=doc||document;
return doc.compatMode=="CSS1Compat"?doc.documentElement.clientWidth:doc.body.clientWidth;
}
,setSize:function(el,width,height)
{
el=this.get(el);
var _wFix=/\d+([a-z%]+)/i.exec(width);
_wFix=_wFix?_wFix[1]:"";
var _hFix=/\d+([a-z%]+)/i.exec(height);
_hFix=_hFix?_hFix[1]:"";
this.setStyle(el,"width",(typeof width!="number"||width<0||/auto/i.test(width))?"auto":(parseInt(width)+(_wFix||"px")));
this.setStyle(el,"height",(typeof height!="number"||height<0||/auto/i.test(height))?"auto":(parseInt(height)+(_hFix||"px")));
}
,getDocumentWindow:function(doc)
{
_doc=doc||document;
return _doc.parentWindow||_doc.defaultView;
}
,getElementsByTagNameNS:function(node,ns,tgn)
{
var res=[];
if(node)
{
if(node.getElementsByTagNameNS)
{
return node.getElementsByTagName(ns+":"+tgn);
}
else if(node.getElementsByTagName)
{
var n=document.namespaces;
if(n.length>0)
{
var l=node.getElementsByTagName(tgn);
for(var i=0,len=l.length;
i<len;
++i)
{
if(l[i].scopeName==ns)
{
res.push(l[i]);
}
}
}
}
}
return res;
}
,collection2Array:function(coll)
{
if(isArray(coll))
{
return coll;
}
else
{
var r=[];
for(var i=0,len=coll.length;
i<len;
++i)
{
r.push(coll[i]);
}
}
return r;
}
,getElementByTagNameBubble:function(a,tn)
{
if(!isNode(a))
{
return null;
}
tn+="";
var maxLv=31;
while(a&&a.tagName&&(a.tagName.toLowerCase()!=tn.toLowerCase()))
{
if(a==document.body||(--maxLv)<0)
{
return null;
}
a=a.parentNode;
}
return a;
}
}
;
var _CN=QZFL.dom.createNamedElement,$=QZFL.dom.getById,removeNode=QZFL.dom.removeElement;
QZFL.event=
{
KEYS:
{
BACKSPACE:8,TAB:9,RETURN:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46
}
,extendType:/(click|mousedown|mouseover|mouseout|mouseup|mousemove|scroll|contextmenu|resize)/i,_eventListDictionary:
{ }
,_fnSeqUID:0,_objSeqUID:0,addEvent:function(obj,eventType,fn,argArray)
{
var cfn=fn,res=false,l;
if(!obj)
{
return res;
}
if(!obj.eventsListUID)
{
obj.eventsListUID="e"+(++QZFL.event._objSeqUID);
QZFL.event._eventListDictionary[obj.eventsListUID]=
{ }
;
}
l=QZFL.event._eventListDictionary[obj.eventsListUID];
if(!fn.__elUID)
{
fn.__elUID="e"+(++QZFL.event._fnSeqUID)+obj.eventsListUID;
}
if(!l[eventType])
{
l[eventType]=
{ }
;
}
if(typeof(l[eventType][fn.__elUID])=='function')
{
return false;
}
if(QZFL.event.extendType.test(eventType))
{
argArray=argArray||[];
cfn=function(e)
{
return fn.apply(null,([QZFL.event.getEvent(e)]).concat(argArray));
}
;
}
if(obj.addEventListener)
{
obj.addEventListener(eventType,cfn,false);
res=true;
}
else if(obj.attachEvent)
{
res=obj.attachEvent("on"+eventType,cfn);
}
else
{
res=false;
}
if(res)
{
l[eventType][fn.__elUID]=cfn;
}
return res;
}
,removeEvent:function(obj,eventType,fn)
{
var cfn=fn,res=false,l;
if(!obj)
{
return res;
}
if(!cfn)
{
return QZFL.event.purgeEvent(obj,eventType);
}
if(!obj.eventsListUID)
{
obj.eventsListUID="e"+(++QZFL.event._objSeqUID);
QZFL.event._eventListDictionary[obj.eventsListUID]=
{ }
;
}
l=QZFL.event._eventListDictionary[obj.eventsListUID];
if(!fn.__elUID)
{
fn.__elUID="e"+(++QZFL.event._fnSeqUID)+obj.eventsListUID;
}
if(!l[eventType])
{
l[eventType]=
{ }
;
}
if(QZFL.event.extendType.test(eventType)&&l[eventType]&&l[eventType][fn.__elUID])
{
cfn=l[eventType][fn.__elUID];
}
if(obj.removeEventListener)
{
obj.removeEventListener(eventType,cfn,false);
res=true;
}
else if(obj.detachEvent)
{
obj.detachEvent("on"+eventType,cfn);
res=true;
}
else
{
return false;
}
if(res&&l[eventType])
{
delete l[eventType][fn.__elUID];
}
return res;
}
,purgeEvent:function(obj,type)
{
var l;
if(obj.eventsListUID&&(l=QZFL.event._eventListDictionary[obj.eventsListUID])&&l[type])
{
for(var k in l[type])
{
if(obj.removeEventListener)
{
obj.removeEventListener(type,l[type][k],false);
}
else if(obj.detachEvent)
{
obj.detachEvent('on'+type,l[type][k]);
}
}
}
if(obj['on'+type])
{
obj['on'+type]=null;
}
if(l)
{
l[type]=null;
delete l[type];
}
return true;
}
,getEvent:function(evt)
{
evt=evt||window.event;
if(!evt&&!QZFL.userAgent.ie)
{
var c=this.getEvent.caller,cnt=1;
while(c)
{
evt=c.arguments[0];
if(evt&&Event==evt.constructor)
{
break;
}
else if(cnt>32)
{
break;
}
c=c.caller;
cnt++;
}
}
return evt;
}
,getButton:function(evt)
{
var e=QZFL.event.getEvent(evt);
if(!e)
{
return-1
}
if(QZFL.userAgent.ie)
{
return e.button-Math.ceil(e.button/2);
}
else
{
return e.button;
}
}
,getTarget:function(evt)
{
var e=QZFL.event.getEvent(evt);
if(e)
{
return e.target||e.srcElement;
}
else
{
return null;
}
}
,getCurrentTarget:function(evt)
{
var e=QZFL.event.getEvent(evt);
if(e)
{
return e.currentTarget||document.activeElement;
}
else
{
return null;
}
}
,cancelBubble:function(evt)
{
evt=QZFL.event.getEvent(evt);
if(!evt)
{
return false
}
if(evt.stopPropagation)
{
evt.stopPropagation();
}
else
{
if(!evt.cancelBubble)
{
evt.cancelBubble=true;
}
}
}
,preventDefault:function(evt)
{
evt=QZFL.event.getEvent(evt);
if(!evt)
{
return false
}
if(evt.preventDefault)
{
evt.preventDefault();
}
else
{
evt.returnValue=false;
}
}
,mouseX:function(evt)
{
evt=QZFL.event.getEvent(evt);
return evt.pageX||(evt.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));
}
,mouseY:function(evt)
{
evt=QZFL.event.getEvent(evt);
return evt.pageY||(evt.clientY+(document.documentElement.scrollTop||document.body.scrollTop));
}
,getRelatedTarget:function(ev)
{
ev=QZFL.event.getEvent(ev);
var t=ev.relatedTarget;
if(!t)
{
if(ev.type=="mouseout")
{
t=ev.toElement;
}
else if(ev.type=="mouseover")
{
t=ev.fromElement;
}
else
{ }
}
return t;
}
,bind:function(obj,method)
{
var args=Array.prototype.slice.call(arguments,2);
return function()
{
var _obj=obj||this;
var _args=args.concat(Array.prototype.slice.call(arguments,0));
if(typeof(method)=="string")
{
if(_obj[method])
{
return _obj[method].apply(_obj,_args);
}
}
else
{
return method.apply(_obj,_args);
}
}
}
}
;
QZFL.event.on=QZFL.event.addEvent;
window.addEvent=QZFL.event.addEvent;
window.removeEvent=QZFL.event.removeEvent;
window.getEvent=QZFL.event.getEvent;
QZFL.selector=
{
query:function(selector,context)
{
context=context||document;
var _s=QZFL.selector.engine(selector,context);
return _s;
}
}
;
;
(function()
{
var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=0,toString=Object.prototype.toString,hasDuplicate=false;
var Sizzle=function(selector,context,results,seed)
{
results=results||[];
var origContext=context=context||document;
if(context.nodeType!==1&&context.nodeType!==9)
{
return[];
}
if(!selector||typeof selector!=="string")
{
return results;
}
var parts=[],m,set,checkSet,check,mode,extra,prune=true,contextXML=isXML(context);
chunker.lastIndex=0;
while((m=chunker.exec(selector))!==null)
{
parts.push(m[1]);
if(m[2])
{
extra=RegExp.rightContext;
break;
}
}
if(parts.length>1&&origPOS.exec(selector))
{
if(parts.length===2&&Expr.relative[parts[0]])
{
set=posProcess(parts[0]+parts[1],context);
}
else
{
set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);
while(parts.length)
{
selector=parts.shift();
if(Expr.relative[selector])
selector+=parts.shift();
set=posProcess(selector,set);
}
}
}
else
{
if(!seed&&parts.length>1&&context.nodeType===9&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1]))
{
var ret=Sizzle.find(parts.shift(),context,contextXML);
context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0];
}
if(context)
{
var ret=seed?
{
expr:parts.pop(),set:makeArray(seed)
}
:Sizzle.find(parts.pop(),parts.length===1&&(parts[0]==="~"||parts[0]==="+")&&context.parentNode?context.parentNode:context,contextXML);
set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set;
if(parts.length>0)
{
checkSet=makeArray(set);
}
else
{
prune=false;
}
while(parts.length)
{
var cur=parts.pop(),pop=cur;
if(!Expr.relative[cur])
{
cur="";
}
else
{
pop=parts.pop();
}
if(pop==null)
{
pop=context;
}
Expr.relative[cur](checkSet,pop,contextXML);
}
}
else
{
checkSet=parts=[];
}
}
if(!checkSet)
{
checkSet=set;
}
if(!checkSet)
{
throw"Syntax error, unrecognized expression: "+(cur||selector);
}
if(toString.call(checkSet)==="[object Array]")
{
if(!prune)
{
results.push.apply(results,checkSet);
}
else if(context&&context.nodeType===1)
{
for(var i=0;
checkSet[i]!=null;
i++)
{
if(checkSet[i]&&(checkSet[i]===true||checkSet[i].nodeType===1&&contains(context,checkSet[i])))
{
results.push(set[i]);
}
}
}
else
{
for(var i=0;
checkSet[i]!=null;
i++)
{
if(checkSet[i]&&checkSet[i].node

ittxl1 2012-01-05
  • 打赏
  • 举报
回复


else
{
elem.className=cname;
return true;
}
}
else
{
return false;
}
}
,removeClassName:function(elem,cname)
{
if(elem&&cname&&elem.className)
{
var old=elem.className;
elem.className=(elem.className.replace(new RegExp('\\b'+cname+'\\b'),''));
return elem.className!=old;
}
else
{
return false;
}
}
,toggleClassName:function(elem,cname)
{
var r=QZFL.css;
if(r.hasClassName(elem,cname))
{
r.removeClassName(elem,cname);
}
else
{
r.addClassName(elem,cname);
}
}
}
QZFL.css.classNameCache=
{ }
;
QZFL.dom=
{
getById:function(id)
{
return document.getElementById(id);
}
,getByName:function(name,tagName)
{
if(!tagName)
return document.getElementsByName(name);
var arr=[];
var e=document.getElementsByTagName(tagName);
for(var i=0;
i<e.length;
++i)
{
if(!!e[i].getAttribute("name")&&(e[i].getAttribute("name").toLowerCase()==name.toLowerCase()))
{
arr.push(e[i]);
}
}
return arr;
}
,get:function(e)
{
if(e&&((e.tagName||e.item)||e.nodeType==9))
{
return e;
}
return this.getById(e);
}
,getNode:function(e)
{
if(e&&(e.nodeType||e.item))
{
return e;
}
if(typeof e==='string')
{
return this.getById(e);
}
return null;
}
,removeElement:function(el)
{
if(typeof(el)=="string")
{
el=QZFL.dom.getById(el);
}
if(!el)
{
return;
}
if(el.removeNode)
{
el.removeNode(true);
}
else
{
if(el.childNodes.length>0)
{
for(var ii=el.childNodes.length-1;
ii>=0;
ii--)
{
QZFL.dom.removeElement(el.childNodes[ii]);
}
}
if(el.parentNode)
{
el.parentNode.removeChild(el);
}
}
el=null;
return null;
}
,searchElementByClassName:function(el,className)
{
el=this.get(el);
if(!el)
{
return null
}
var re=QZFL.css.getClassRegEx(className);
while(el)
{
if(re.test(el.className))
{
return el;
}
el=el.parentNode;
}
return null;
}
,getElementsByClassName:function(className,tag,root)
{
tag=tag||'*';
root=(root)?this.get(root):null||document;
if(!root)
{
return[];
}
var nodes=[],elements=root.getElementsByTagName(tag),re=QZFL.css.getClassRegEx(className);
for(var i=0,len=elements.length;
i<len;
++i)
{
if(re.test(elements[i].className))
{
nodes[nodes.length]=elements[i];
}
}
return nodes;
}
,isAncestor:function(node1,node2)
{
if(!node1||!node2)
{
return false;
}
if(node1.contains&&node2.nodeType&&!QZFL.userAgent.Safari)
{
return node1.contains(node2)&&node1!=node2;
}
if(node1.compareDocumentPosition&&node2.nodeType)
{
return!!(node1.compareDocumentPosition(node2)&16);
}
else if(node2.nodeType)
{
return!!this.getAncestorBy(node2,function(el)
{
return el==node1;
}
);
}
return false;
}
,getAncestorBy:function(node,method)
{
while(node=node.parentNode)
{
if(node&&node.nodeType==1&&(!method||method(node)))
{
return node;
}
}
return null;
}
,getFirstChild:function(node)
{
node=this.getNode(node);
if(!node)
{
return null;
}
var child=!!node.firstChild&&node.firstChild.nodeType==1?node.firstChild:null;
return child||this.getNextSibling(node.firstChild);
}
,getNextSibling:function(node)
{
node=this.getNode(node);
if(!node)
{
return null;
}
while(node)
{
node=node.nextSibling;
if(!!node&&node.nodeType==1)
{
return node;
}
}
return null;
}
,getPreviousSibling:function(node)
{
node=this.getNode(node);
if(!node)
{
return null;
}
while(node)
{
node=node.previousSibling;
if(!!node&&node.nodeType==1)
{
return node;
}
}
return null;
}
,swapNode:function(node1,node2)
{
if(node1.swapNode)
{
node1.swapNode(node2);
}
else
{
var parent=node2.parentNode;
var next=node2.nextSibling;
if(next==node1)
{
parent.insertBefore(node1,node2);
}
else if(node2==node1.nextSibling)
{
parent.insertBefore(node2,node1);
}
else
{
node1.parentNode.replaceChild(node2,node1);
parent.insertBefore(node1,next);
}
}
}
,createElementIn:function(tagName,el,insertFirst,attributes)
{
tagName=tagName||"div";
el=this.get(el)||document.body;
var _doc=el.ownerDocument;
var _e=_doc.createElement(tagName);
if(attributes)
{
for(var k in attributes)
{
if(/class/.test(k))
{
_e.className=attributes[k];
}
else if(/style/.test(k))
{
_e.style.cssText=attributes[k];
}
else
{
_e[k]=attributes[k];
}
}
}
if(insertFirst)
{
el.insertBefore(_e,el.firstChild);
}
else
{
el.appendChild(_e);
}
return _e;
}
,getStyle:function(el,property)
{
el=this.get(el);
if(!el||el.nodeType==9)
{
return null;
}
var w3cMode=document.defaultView&&document.defaultView.getComputedStyle;
var computed=!w3cMode?null:document.defaultView.getComputedStyle(el,'');
var value="";
switch(property)
{
case"float":property=w3cMode?"cssFloat":"styleFloat";
break;
case"opacity":if(!w3cMode)
{
var val=100;
try
{
val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;
}
catch(e)
{
try
{
val=el.filters('alpha').opacity;
}
catch(e)
{ }
}
return val/100;
}
else
{
return parseFloat((computed||el.style)[property]);
}
break;
case"backgroundPositionX":if(w3cMode)
{
property="backgroundPosition";
return((computed||el.style)[property]).split(" ")[0];
}
break;
case"backgroundPositionY":if(w3cMode)
{
property="backgroundPosition";
return((computed||el.style)[property]).split(" ")[1];
}
break;
}
if(w3cMode)
{
return(computed||el.style)[property];
}
else
{
return(el.currentStyle[property]||el.style[property]);
}
}
,setStyle:function(el,property,value)
{
el=this.get(el);
if(!el||el.nodeType==9)
{
return false;
}
var w3cMode=document.defaultView&&document.defaultView.getComputedStyle;
switch(property)
{
case"float":property=w3cMode?"cssFloat":"styleFloat";
el.style[property]=value;
return true;
break;
case"opacity":if(!w3cMode)
{
if(value>=1)
{
el.style.filter="";
return;
}
el.style.filter='alpha(opacity='+(value*100)+')';
return true;
}
else
{
el.style[property]=value;
return true;
}
break;
case"backgroundPositionX":if(w3cMode)
{
var _y=QZFL.dom.getStyle(el,"backgroundPositionY");
el.style["backgroundPosition"]=value+" "+(_y||"top");
}
else
{
el.style[property]=value;
}
break;
case"backgroundPositionY":if(w3cMode)
{
var _x=QZFL.dom.getStyle(el,"backgroundPositionX");
el.style["backgroundPosition"]=(_x||"left")+" "+value;
}
else
{
el.style[property]=value;
}
break;
default:if(typeof el.style[property]=="undefined")
{
return false
}
el.style[property]=value;
return true;
}
}
,createNamedElement:function(type,name,doc)
{
doc=doc||document;
var element;
try
{
element=doc.createElement('<'+type+' name="'+name+'">');
}
catch(ignore)
{ }
if(!element||!element.name)
{
element=doc.createElement(type);
element.name=name;
}
return element;
}
,getPosition:function(el)
{
var xy=QZFL.dom.getXY(el),size=QZFL.dom.getSize(el);
return
{
"top":xy[1],"left":xy[0],"width":size[0],"height":size[1]
}
;
}
,setPosition:function(el,pos)
{
QZFL.dom.setXY(el,pos['left'],pos['top']);
QZFL.dom.setSize(el,pos['width'],pos['height']);
}
,getXY:function(el,doc)
{
var _t=0,_l=0;
doc=doc||document;
if(el)
{
if(doc.documentElement.getBoundingClientRect&&el.getBoundingClientRect)
{
var box=el.getBoundingClientRect(),oDoc=el.ownerDocument,_fix=QZFL.userAgent.ie?2:0;
_t=box.top-_fix+QZFL.dom.getScrollTop(oDoc);
_l=box.left-_fix+QZFL.dom.getScrollLeft(oDoc);
}
else
{
while(el.offsetParent)
{
_t+=el.offsetTop;
_l+=el.offsetLeft;
el=el.offsetParent;
}
}
}
return[_l,_t];
}
,getSize:function(el)
{
var _fix=[0,0];
QZFL.object.each(["Left","Right","Top","Bottom"],function(v)
{
_fix[v=="Left"||v=="Right"?0:1]+=(parseInt(QZFL.dom.getStyle(el,"border"+v+"Width"),10)||0)+(parseInt(QZFL.dom.getStyle(el,"padding"+v),10)||0);
}
);
var _w=el.offsetWidth-_fix[0];
var _h=el.offsetHeight-_fix[1];
return[_w,_h];
}
,setXY:function(el,x,y)
{
el=this.get(el);
var _ml=parseInt(this.getStyle(el,"marginLeft"))||0;
var _mt=parseInt(this.getStyle(el,"marginTop"))||0;
this.setStyle(el,"left",parseInt(x)-_ml+"px");
this.setStyle(el,"top",parseInt(y)-_mt+"px");
}
,getScrollLeft:function(doc)
{
doc=doc||document;
return Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);
}
,getScrollTop:function(doc)
{
doc=doc||document;
return Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);
}
,getScrollHeight:function(doc)
{
doc=doc||document;
return Math.max(doc.documentElement.scrollHeight,doc.body.scrollHeight);
}
,getScrollWidth:function(doc)
{
doc=doc||document;
return Math.max(doc.documentElement.scrollWidth,doc.body.scrollWidth);
}
,setScrollLeft:function(value,doc)
{
doc=doc||document;
doc[doc.compatMode=="CSS1Compat"&&!QZFL.userAgent.safari?"documentElement":"body"].scrollLeft=value;
}
,setScrollTop:function(value,doc)
{
doc=doc||document;
doc[doc.compatMode=="CSS1Compat"&&!QZFL.userAgent.safari?"documentElement":"body"].scrollTop=value;
}
,getClientHeight:function(doc)
{
doc=doc||document;
return doc.compatMode=="CSS1Compat"?doc.documentElement.clientH


110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧