758 lines
10 KiB
PHP
Executable File
758 lines
10 KiB
PHP
Executable File
<script language="JavaScript" type="Text/JavaScript">
|
|
|
|
|
|
<!--
|
|
|
|
|
|
if(window.Event){// 修正Event的DOM
|
|
|
|
|
|
/*
|
|
|
|
|
|
IE5 MacIE5 Mozilla Konqueror2.2 Opera5
|
|
|
|
|
|
event yes yes yes yes yes
|
|
|
|
|
|
event.returnValue yes yes no no no
|
|
|
|
|
|
event.cancelBubble yes yes no no no
|
|
|
|
|
|
event.srcElement yes yes no no no
|
|
|
|
|
|
event.fromElement yes yes no no no
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
Event.prototype.__defineSetter__("returnValue",function(b){//
|
|
|
|
|
|
if(!b)this.preventDefault();
|
|
|
|
|
|
return b;
|
|
|
|
|
|
});
|
|
|
|
|
|
Event.prototype.__defineSetter__("cancelBubble",function(b){// 设置或者检索当前事件句柄的层次冒泡
|
|
|
|
|
|
if(b)this.stopPropagation();
|
|
|
|
|
|
return b;
|
|
|
|
|
|
});
|
|
|
|
|
|
Event.prototype.__defineGetter__("srcElement",function(){
|
|
|
|
|
|
var node=this.target;
|
|
|
|
|
|
while(node.nodeType!=1)node=node.parentNode;
|
|
|
|
alert(node);
|
|
return node;
|
|
|
|
|
|
});
|
|
|
|
|
|
Event.prototype.__defineGetter__("fromElement",function(){// 返回鼠标移出的源节点
|
|
|
|
|
|
var node;
|
|
|
|
|
|
if(this.type=="mouseover")
|
|
|
|
|
|
node=this.relatedTarget;
|
|
|
|
|
|
else if(this.type=="mouseout")
|
|
|
|
|
|
node=this.target;
|
|
|
|
|
|
if(!node)return;
|
|
|
|
|
|
while(node.nodeType!=1)node=node.parentNode;
|
|
|
|
|
|
return node;
|
|
|
|
|
|
});
|
|
|
|
|
|
Event.prototype.__defineGetter__("toElement",function(){// 返回鼠标移入的源节点
|
|
|
|
|
|
var node;
|
|
|
|
|
|
if(this.type=="mouseout")
|
|
|
|
|
|
node=this.relatedTarget;
|
|
|
|
|
|
else if(this.type=="mouseover")
|
|
|
|
|
|
node=this.target;
|
|
|
|
|
|
if(!node)return;
|
|
|
|
|
|
while(node.nodeType!=1)node=node.parentNode;
|
|
|
|
|
|
return node;
|
|
|
|
|
|
});
|
|
|
|
|
|
Event.prototype.__defineGetter__("offsetX",function(){
|
|
|
|
|
|
return this.layerX;
|
|
|
|
|
|
});
|
|
|
|
|
|
Event.prototype.__defineGetter__("offsetY",function(){
|
|
|
|
|
|
return this.layerY;
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
if(window.Document){// 修正Document的DOM
|
|
|
|
|
|
/*
|
|
|
|
|
|
IE5 MacIE5 Mozilla Konqueror2.2 Opera5
|
|
|
|
|
|
document.documentElement yes yes yes yes no
|
|
|
|
|
|
document.activeElement yes null no no no
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
}
|
|
|
|
|
|
if(window.Node){// 修正Node的DOM
|
|
|
|
|
|
/*
|
|
|
|
|
|
IE5 MacIE5 Mozilla Konqueror2.2 Opera5
|
|
|
|
|
|
Node.contains yes yes no no yes
|
|
|
|
|
|
Node.replaceNode yes no no no no
|
|
|
|
|
|
Node.removeNode yes no no no no
|
|
|
|
|
|
Node.children yes yes no no no
|
|
|
|
|
|
Node.hasChildNodes yes yes yes yes no
|
|
|
|
|
|
Node.childNodes yes yes yes yes no
|
|
|
|
|
|
Node.swapNode yes no no no no
|
|
|
|
|
|
Node.currentStyle yes yes no no no
|
|
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
Node.prototype.replaceNode=function(Node){// 替换指定节点
|
|
|
|
|
|
this.parentNode.replaceChild(Node,this);
|
|
|
|
|
|
}
|
|
|
|
|
|
Node.prototype.removeNode=function(removeChildren){// 删除指定节点
|
|
|
|
|
|
if(removeChildren)
|
|
|
|
|
|
return this.parentNode.removeChild(this);
|
|
|
|
|
|
else{
|
|
|
|
|
|
var range=document.createRange();
|
|
|
|
|
|
range.selectNodeContents(this);
|
|
|
|
|
|
return this.parentNode.replaceChild(range.extractContents(),this);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Node.prototype.swapNode=function(Node){// 交换节点
|
|
|
|
|
|
var nextSibling=this.nextSibling;
|
|
|
|
|
|
var parentNode=this.parentNode;
|
|
|
|
|
|
node.parentNode.replaceChild(this,Node);
|
|
|
|
|
|
parentNode.insertBefore(node,nextSibling);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if(window.HTMLElement){
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("all",function(){
|
|
|
|
|
|
var a=this.getElementsByTagName("*");
|
|
|
|
|
|
var node=this;
|
|
|
|
|
|
a.tags=function(sTagName){
|
|
|
|
|
|
return node.getElementsByTagName(sTagName);
|
|
|
|
|
|
}
|
|
|
|
|
|
return a;
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("parentElement",function(){
|
|
|
|
|
|
if(this.parentNode==this.ownerDocument)return null;
|
|
|
|
|
|
return this.parentNode;
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("children",function(){
|
|
|
|
|
|
var tmp=[];
|
|
|
|
|
|
var j=0;
|
|
|
|
|
|
var n;
|
|
|
|
|
|
for(var i=0;i<this.childNodes.length;i++){
|
|
|
|
|
|
n=this.childNodes[i];
|
|
|
|
|
|
if(n.nodeType==1){
|
|
|
|
|
|
tmp[j++]=n;
|
|
|
|
|
|
if(n.name){
|
|
|
|
|
|
if(!tmp[n.name])
|
|
|
|
|
|
tmp[n.name]=[];
|
|
|
|
|
|
tmp[n.name][tmp[n.name].length]=n;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(n.id)
|
|
|
|
|
|
tmp[n.id]=n;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return tmp;
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("currentStyle", function(){
|
|
|
|
|
|
return this.ownerDocument.defaultView.getComputedStyle(this,null);
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){
|
|
|
|
|
|
var r=this.ownerDocument.createRange();
|
|
|
|
|
|
r.setStartBefore(this);
|
|
|
|
|
|
var df=r.createContextualFragment(sHTML);
|
|
|
|
|
|
this.parentNode.replaceChild(df,this);
|
|
|
|
|
|
return sHTML;
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("outerHTML",function(){
|
|
|
|
|
|
var attr;
|
|
|
|
|
|
var attrs=this.attributes;
|
|
|
|
|
|
var str="<"+this.tagName;
|
|
|
|
|
|
for(var i=0;i<attrs.length;i++){
|
|
|
|
|
|
attr=attrs[i];
|
|
|
|
|
|
if(attr.specified)
|
|
|
|
|
|
str+=" "+attr.name+'="'+attr.value+'"';
|
|
|
|
|
|
}
|
|
|
|
|
|
if(!this.canHaveChildren)
|
|
|
|
|
|
return str+">";
|
|
|
|
|
|
return str+">"+this.innerHTML+"</"+this.tagName+">";
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
|
|
|
|
|
|
switch(this.tagName.toLowerCase()){
|
|
|
|
|
|
case "area":
|
|
|
|
|
|
case "base":
|
|
|
|
|
|
case "basefont":
|
|
|
|
|
|
case "col":
|
|
|
|
|
|
case "frame":
|
|
|
|
|
|
case "hr":
|
|
|
|
|
|
case "img":
|
|
|
|
|
|
case "br":
|
|
|
|
|
|
case "input":
|
|
|
|
|
|
case "isindex":
|
|
|
|
|
|
case "link":
|
|
|
|
|
|
case "meta":
|
|
|
|
|
|
case "param":
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
HTMLElement.prototype.__defineSetter__("innerText",function(sText){
|
|
|
|
|
|
var parsedText=document.createTextNode(sText);
|
|
|
|
|
|
this.innerHTML=parsedText;
|
|
|
|
|
|
return parsedText;
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("innerText",function(){
|
|
|
|
|
|
var r=this.ownerDocument.createRange();
|
|
|
|
|
|
r.selectNodeContents(this);
|
|
|
|
|
|
return r.toString();
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineSetter__("outerText",function(sText){
|
|
|
|
|
|
var parsedText=document.createTextNode(sText);
|
|
|
|
|
|
this.outerHTML=parsedText;
|
|
|
|
|
|
return parsedText;
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.__defineGetter__("outerText",function(){
|
|
|
|
|
|
var r=this.ownerDocument.createRange();
|
|
|
|
|
|
r.selectNodeContents(this);
|
|
|
|
|
|
return r.toString();
|
|
|
|
|
|
});
|
|
|
|
|
|
HTMLElement.prototype.attachEvent=function(sType,fHandler){
|
|
|
|
|
|
var shortTypeName=sType.replace(/on/,"");
|
|
|
|
|
|
fHandler._ieEmuEventHandler=function(e){
|
|
|
|
|
|
window.event=e;
|
|
|
|
|
|
return fHandler();
|
|
|
|
|
|
}
|
|
|
|
|
|
this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.detachEvent=function(sType,fHandler){
|
|
|
|
|
|
var shortTypeName=sType.replace(/on/,"");
|
|
|
|
|
|
if(typeof(fHandler._ieEmuEventHandler)=="function")
|
|
|
|
|
|
this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
|
|
|
|
|
|
else
|
|
|
|
|
|
this.removeEventListener(shortTypeName,fHandler,true);
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.contains=function(Node){// 是否包含某节点
|
|
|
|
|
|
do if(Node==this)return true;
|
|
|
|
|
|
while(Node=Node.parentNode);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.insertAdjacentElement=function(where,parsedNode){
|
|
|
|
|
|
switch(where){
|
|
|
|
|
|
case "beforeBegin":
|
|
|
|
|
|
this.parentNode.insertBefore(parsedNode,this);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "afterBegin":
|
|
|
|
|
|
this.insertBefore(parsedNode,this.firstChild);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "beforeEnd":
|
|
|
|
|
|
this.appendChild(parsedNode);
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "afterEnd":
|
|
|
|
|
|
if(this.nextSibling)
|
|
|
|
|
|
this.parentNode.insertBefore(parsedNode,this.nextSibling);
|
|
|
|
|
|
else
|
|
|
|
|
|
this.parentNode.appendChild(parsedNode);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr){
|
|
|
|
|
|
var r=this.ownerDocument.createRange();
|
|
|
|
|
|
r.setStartBefore(this);
|
|
|
|
|
|
var parsedHTML=r.createContextualFragment(htmlStr);
|
|
|
|
|
|
this.insertAdjacentElement(where,parsedHTML);
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.insertAdjacentText=function(where,txtStr){
|
|
|
|
|
|
var parsedText=document.createTextNode(txtStr);
|
|
|
|
|
|
this.insertAdjacentElement(where,parsedText);
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.attachEvent=function(sType,fHandler){
|
|
|
|
|
|
var shortTypeName=sType.replace(/on/,"");
|
|
|
|
|
|
fHandler._ieEmuEventHandler=function(e){
|
|
|
|
|
|
window.event=e;
|
|
|
|
|
|
return fHandler();
|
|
|
|
|
|
}
|
|
|
|
|
|
this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
|
|
|
|
|
|
}
|
|
|
|
|
|
HTMLElement.prototype.detachEvent=function(sType,fHandler){
|
|
|
|
|
|
var shortTypeName=sType.replace(/on/,"");
|
|
|
|
|
|
if(typeof(fHandler._ieEmuEventHandler)=="function")
|
|
|
|
|
|
this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);
|
|
|
|
|
|
else
|
|
|
|
|
|
this.removeEventListener(shortTypeName,fHandler,true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//-->
|
|
|
|
|
|
</script> |