⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.js.svn-base

📁 prototype 实现网络相册的ajax界面。
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)//// See scriptaculous.js for full license.Object.inspect = function(obj) {  var info = [];    if(typeof obj in ["string","number"]) {    return obj;  } else {    for(property in obj)      if(typeof obj[property]!="function")        info.push(property + ' => ' +           (typeof obj[property] == "string" ?            '"' + obj[property] + '"' :            obj[property]));  }    return ("'" + obj + "' #" + typeof obj +     ": {" + info.join(", ") + "}");}// borrowed from http://www.schuerig.de/michael/javascript/stdext.js// Copyright (c) 2005, Michael Schuerig, michael@schuerig.deArray.flatten = function(array, excludeUndefined) {  if (excludeUndefined === undefined) {    excludeUndefined = false;  }  var result = [];  var len = array.length;  for (var i = 0; i < len; i++) {    var el = array[i];    if (el instanceof Array) {      var flat = el.flatten(excludeUndefined);      result = result.concat(flat);    } else if (!excludeUndefined || el != undefined) {      result.push(el);    }  }  return result;};if (!Array.prototype.flatten) {  Array.prototype.flatten = function(excludeUndefined) {    return Array.flatten(this, excludeUndefined);  }}String.prototype.toArray = function() {  var results = [];  for (var i = 0; i < this.length; i++)    results.push(this.charAt(i));  return results;}/*--------------------------------------------------------------------------*/var Builder = {  node: function(elementName) {    var element = document.createElement('div');    element.innerHTML =       "<" + elementName + "></" + elementName + ">";    // attributes (or text)    if(arguments[1])      if(this._isStringOrNumber(arguments[1]) ||        (arguments[1] instanceof Array)) {          this._children(element.firstChild, arguments[1]);        } else {          var attrs = this._attributes(arguments[1]);          if(attrs.length)             element.innerHTML = "<" +elementName + " " +              attrs + "></" + elementName + ">";        }     // text, or array of children    if(arguments[2])      this._children(element.firstChild, arguments[2]);     return element.firstChild;  },  _text: function(text) {     return document.createTextNode(text);  },  _attributes: function(attributes) {    var attrs = [];    for(attribute in attributes)      attrs.push((attribute=='className' ? 'class' : attribute) +          '="' + attributes[attribute].toString().escapeHTML() + '"');    return attrs.join(" ");  },  _children: function(element, children) {    if(typeof children=='object') { // array can hold nodes and text      children.flatten().each( function(e) {        if(typeof e=='object')          element.appendChild(e)        else          if(Builder._isStringOrNumber(e))            element.appendChild(Builder._text(e));      });    } else      if(Builder._isStringOrNumber(children))          element.appendChild(Builder._text(children));  },  _isStringOrNumber: function(param) {    return(typeof param=='string' || typeof param=='number');  }}/* ------------- element ext -------------- */// adapted from http://dhtmlkitchen.com/learn/js/setstyle/index4.jsp// note: Safari return null on elements with display:none; see http://bugzilla.opendarwin.org/show_bug.cgi?id=4125// instead of "auto" values returns null so it's easier to use with || constructsString.prototype.camelize = function() {  var oStringList = this.split('-');  if(oStringList.length == 1)        return oStringList[0];  var ret = this.indexOf("-") == 0 ?     oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1) : oStringList[0];  for(var i = 1, len = oStringList.length; i < len; i++){    var s = oStringList[i];    ret += s.charAt(0).toUpperCase() + s.substring(1)  }  return ret;}Element.getStyle = function(element, style) {  element = $(element);  var value = element.style[style.camelize()];  if(!value)    if(document.defaultView && document.defaultView.getComputedStyle) {      var css = document.defaultView.getComputedStyle(element, null);      value = (css!=null) ? css.getPropertyValue(style) : null;    } else if(element.currentStyle) {      value = element.currentStyle[style.camelize()];    }    // If top, left, bottom, or right values have been queried, return "auto" for consistency resaons   // if position is "static", as Opera (and others?) returns the pixel values relative to root element   // (or positioning context?)  if (window.opera && (style == "left" || style == "top" || style == "right" || style == "bottom"))    if (Element.getStyle(element, "position") == "static") value = "auto";      if(value=='auto') value = null;  return value;}// converts rgb() and #xxx to #xxxxxx format,// returns self (or first argument) if not convertableString.prototype.parseColor = function() {  color = "#";  if(this.slice(0,4) == "rgb(") {    var cols = this.slice(4,this.length-1).split(',');    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);  } else {    if(this.slice(0,1) == '#') {      if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();      if(this.length==7) color = this.toLowerCase();    }  }  return(color.length==7 ? color : (arguments[0] || this));}Element.makePositioned = function(element) {  element = $(element);  var pos = Element.getStyle(element, 'position');  if(pos =='static' || !pos) {    element._madePositioned = true;    element.style.position = "relative";    // Opera returns the offset relative to the positioning context, when an element is position relative     // but top and left have not been defined    if (window.opera){      element.style.top = 0;      element.style.left = 0;    }    }}  Element.undoPositioned = function(element) {  element = $(element);  if(typeof element._madePositioned != "undefined"){    element._madePositioned = undefined;    element.style.position = "";    element.style.top = "";    element.style.left = "";    element.style.bottom = "";    element.style.right = "";	    }}Element.makeClipping = function(element) {  element = $(element);  if (typeof element._overflow != 'undefined') return;  element._overflow = element.style.overflow;  if((Element.getStyle(element, 'overflow') || 'visible') != 'hidden') element.style.overflow = 'hidden';}Element.undoClipping = function(element) {  element = $(element);  if (typeof element._overflow == 'undefined') return;  element.style.overflow = element._overflow;  element._overflow = undefined;}Element.collectTextNodesIgnoreClass = function(element, ignoreclass) {  var children = $(element).childNodes;  var text     = "";  var classtest = new RegExp("^([^ ]+ )*" + ignoreclass+ "( [^ ]+)*$","i");  for (var i = 0; i < children.length; i++) {    if(children[i].nodeType==3) {      text+=children[i].nodeValue;    } else {      if((!children[i].className.match(classtest)) && children[i].hasChildNodes())        text += Element.collectTextNodesIgnoreClass(children[i], ignoreclass);    }  }  return text;}Element.setContentZoom = function(element, percent) {  element = $(element);  element.style.fontSize = (percent/100) + "em";    if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);}Element.getOpacity = function(element){  return parseFloat(Element.getStyle(element, "opacity") || '1');}Element.setOpacity = function(element, value){  element= $(element);  var els = element.style;  if (value == 1){    els.opacity = '0.999999';    els.filter  = null;  } else {    if(value < 0.00001) value = 0;    els.opacity = value;    els.filter  = "alpha(opacity:"+value*100+")";  }  }Element.getInlineOpacity = function(element){  element= $(element);  var op;  op = element.style.opacity;  if (typeof op != "undefined" && op != "") return op;  return "";}Element.setInlineOpacity = function(element, value){  element= $(element);  var els = element.style;  els.opacity = value;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -