📄 prototype.js
字号:
this.container=container;
this.url=url;
this.start();
},start:function(){
this.options.onComplete=this.updateComplete.bind(this);
this.onTimerEvent();
},stop:function(){
this.updater.options.onComplete=undefined;
clearTimeout(this.timer);
(this.onComplete||Prototype.emptyFunction).apply(this,arguments);
},updateComplete:function(response){
if(this.options.decay){
this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);
this.lastText=response.responseText;
}
this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);
},onTimerEvent:function(){
this.updater=new Ajax.Updater(this.container,this.url,this.options);
}});
function $(element){
if(arguments.length>1){
for(var i=0,elements=[],length=arguments.length;i<length;i++){
elements.push($(arguments[i]));
}
return elements;
}
if(Object.isString(element)){
element=document.getElementById(element);
}
return Element.extend(element);
}
if(Prototype.BrowserFeatures.XPath){
document._getElementsByXPath=function(expression,parentElement){
var results=[];
var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
for(var i=0,length=query.snapshotLength;i<length;i++){
results.push(Element.extend(query.snapshotItem(i)));
}
return results;
};
}
if(!window.Node){
var Node={};
}
if(!Node.ELEMENT_NODE){
Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});
}
(function(){
var element=this.Element;
this.Element=function(tagName,attributes){
attributes=attributes||{};
tagName=tagName.toLowerCase();
var cache=Element.cache;
if(Prototype.Browser.IE&&attributes.name){
tagName="<"+tagName+" name=\""+attributes.name+"\">";
delete attributes.name;
return Element.writeAttribute(document.createElement(tagName),attributes);
}
if(!cache[tagName]){
cache[tagName]=Element.extend(document.createElement(tagName));
}
return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);
};
Object.extend(this.Element,element||{});
}).call(window);
Element.cache={};
Element.Methods={visible:function(element){
return $(element).style.display!="none";
},toggle:function(element){
element=$(element);
Element[Element.visible(element)?"hide":"show"](element);
return element;
},hide:function(element){
$(element).style.display="none";
return element;
},show:function(element){
$(element).style.display="";
return element;
},remove:function(element){
element=$(element);
element.parentNode.removeChild(element);
return element;
},update:function(element,content){
element=$(element);
if(content&&content.toElement){
content=content.toElement();
}
if(Object.isElement(content)){
return element.update().insert(content);
}
content=Object.toHTML(content);
element.innerHTML=content.stripScripts();
content.evalScripts.bind(content).defer();
return element;
},replace:function(element,content){
element=$(element);
if(content&&content.toElement){
content=content.toElement();
}else {
if(!Object.isElement(content)){
content=Object.toHTML(content);
var range=element.ownerDocument.createRange();
range.selectNode(element);
content.evalScripts.bind(content).defer();
content=range.createContextualFragment(content.stripScripts());
}
}
element.parentNode.replaceChild(content,element);
return element;
},insert:function(element,insertions){
element=$(element);
if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML))){
insertions={bottom:insertions};
}
var content,t,range;
for(position in insertions){
content=insertions[position];
position=position.toLowerCase();
t=Element._insertionTranslations[position];
if(content&&content.toElement){
content=content.toElement();
}
if(Object.isElement(content)){
t.insert(element,content);
continue ;
}
content=Object.toHTML(content);
range=element.ownerDocument.createRange();
t.initializeRange(element,range);
t.insert(element,range.createContextualFragment(content.stripScripts()));
content.evalScripts.bind(content).defer();
}
return element;
},wrap:function(element,wrapper,attributes){
element=$(element);
if(Object.isElement(wrapper)){
$(wrapper).writeAttribute(attributes||{});
}else {
if(Object.isString(wrapper)){
wrapper=new Element(wrapper,attributes);
}else {
wrapper=new Element("div",wrapper);
}
}
if(element.parentNode){
element.parentNode.replaceChild(wrapper,element);
}
wrapper.appendChild(element);
return wrapper;
},inspect:function(element){
element=$(element);
var result="<"+element.tagName.toLowerCase();
$H({"id":"id","className":"class"}).each(function(pair){
var property=pair.first(),attribute=pair.last();
var value=(element[property]||"").toString();
if(value){
result+=" "+attribute+"="+value.inspect(true);
}
});
return result+">";
},recursivelyCollect:function(element,property){
element=$(element);
var elements=[];
while(element=element[property]){
if(element.nodeType==1){
elements.push(Element.extend(element));
}
}
return elements;
},ancestors:function(element){
return $(element).recursivelyCollect("parentNode");
},descendants:function(element){
return $A($(element).getElementsByTagName("*")).each(Element.extend);
},firstDescendant:function(element){
element=$(element).firstChild;
while(element&&element.nodeType!=1){
element=element.nextSibling;
}
return $(element);
},immediateDescendants:function(element){
if(!(element=$(element).firstChild)){
return [];
}
while(element&&element.nodeType!=1){
element=element.nextSibling;
}
if(element){
return [element].concat($(element).nextSiblings());
}
return [];
},previousSiblings:function(element){
return $(element).recursivelyCollect("previousSibling");
},nextSiblings:function(element){
return $(element).recursivelyCollect("nextSibling");
},siblings:function(element){
element=$(element);
return element.previousSiblings().reverse().concat(element.nextSiblings());
},match:function(element,selector){
if(Object.isString(selector)){
selector=new Selector(selector);
}
return selector.match($(element));
},up:function(element,expression,index){
element=$(element);
if(arguments.length==1){
return $(element.parentNode);
}
var ancestors=element.ancestors();
return expression?Selector.findElement(ancestors,expression,index):ancestors[index||0];
},down:function(element,expression,index){
element=$(element);
if(arguments.length==1){
return element.firstDescendant();
}
var descendants=element.descendants();
return expression?Selector.findElement(descendants,expression,index):descendants[index||0];
},previous:function(element,expression,index){
element=$(element);
if(arguments.length==1){
return $(Selector.handlers.previousElementSibling(element));
}
var previousSiblings=element.previousSiblings();
return expression?Selector.findElement(previousSiblings,expression,index):previousSiblings[index||0];
},next:function(element,expression,index){
element=$(element);
if(arguments.length==1){
return $(Selector.handlers.nextElementSibling(element));
}
var nextSiblings=element.nextSiblings();
return expression?Selector.findElement(nextSiblings,expression,index):nextSiblings[index||0];
},select:function(){
var args=$A(arguments),element=$(args.shift());
return Selector.findChildElements(element,args);
},adjacent:function(){
var args=$A(arguments),element=$(args.shift());
return Selector.findChildElements(element.parentNode,args).without(element);
},identify:function(element){
element=$(element);
var id=element.readAttribute("id"),self=arguments.callee;
if(id){
return id;
}
do {
id="anonymous_element_"+self.counter++;
}while($(id));
element.writeAttribute("id",id);
return id;
},readAttribute:function(element,name){
element=$(element);
if(Prototype.Browser.IE){
var t=Element._attributeTranslations.read;
if(t.values[name]){
return t.values[name](element,name);
}
if(t.names[name]){
name=t.names[name];
}
if(name.include(":")){
return (!element.attributes||!element.attributes[name])?null:element.attributes[name].value;
}
}
return element.getAttribute(name);
},writeAttribute:function(element,name,value){
element=$(element);
var attributes={},t=Element._attributeTranslations.write;
if(typeof name=="object"){
attributes=name;
}else {
attributes[name]=value===undefined?true:value;
}
for(var attr in attributes){
var name=t.names[attr]||attr,value=attributes[attr];
if(t.values[attr]){
name=t.values[attr](element,value);
}
if(value===false||value===null){
element.removeAttribute(name);
}else {
if(value===true){
element.setAttribute(name,name);
}else {
element.setAttribute(name,value);
}
}
}
return element;
},getHeight:function(element){
return $(element).getDimensions().height;
},getWidth:function(element){
return $(element).getDimensions().width;
},classNames:function(element){
return new Element.ClassNames(element);
},hasClassName:function(element,className){
if(!(element=$(element))){
return ;
}
var elementClassName=element.className;
return (elementClassName.length>0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));
},addClassName:function(element,className){
if(!(element=$(element))){
return ;
}
if(!element.hasClassName(className)){
element.className+=(element.className?" ":"")+className;
}
return element;
},removeClassName:function(element,className){
if(!(element=$(element))){
return ;
}
element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)")," ").strip();
return element;
},toggleClassName:function(element,className){
if(!(element=$(element))){
return ;
}
return element[element.hasClassName(className)?"removeClassName":"addClassName"](className);
},cleanWhitespace:function(element){
element=$(element);
var node=element.firstChild;
while(node){
var nextNode=node.nextSibling;
if(node.nodeType==3&&!/\S/.test(node.nodeValue)){
element.removeChild(node);
}
node=nextNode;
}
return element;
},empty:function(element){
return $(element).innerHTML.blank();
},descendantOf:function(element,ancestor){
element=$(element),ancestor=$(ancestor);
if(element.compareDocumentPosition){
return (element.compareDocumentPosition(ancestor)&8)===8;
}
if(element.sourceIndex&&!Prototype.Browser.Opera){
var e=element.sourceIndex,a=ancestor.sourceIndex,nextAncestor=ancestor.nextSibling;
if(!nextAncestor){
do {
ancestor=ancestor.parentNode;
}while(!(nextAncestor=ancestor.nextSibling)&&ancestor.parentNode);
}
if(nextAncestor){
return (e>a&&e<nextAncestor.sourceIndex);
}
}
while(element=element.parentNode){
if(element==ancestor){
return true;
}
}
return false;
},scrollTo:function(element){
element=$(element);
var pos=element.cumulativeOffset();
window.scrollTo(pos[0],pos[1]);
return element;
},getStyle:function(element,style){
element=$(element);
style=style=="float"?"cssFloat":style.camelize();
var value=element.style[style];
if(!value){
var css=document.defaultView.getComputedStyle(element,null);
value=css?css[style]:null;
}
if(style=="opacity"){
return value?parseFloat(value):1;
}
return value=="auto"?null:value;
},getOpacity:function(element){
return $(element).getStyle("opacity");
},setStyle:function(element,styles){
element=$(element);
var elementStyle=element.style,match;
if(Object.isString(styles)){
element.style.cssText+=";"+styles;
return styles.include("opacity")?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element;
}
for(var property in styles){
if(property=="opacity"){
element.setOpacity(styles[property]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -