亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? prototype.js

?? 很強大一個javascript類庫
?? JS
?? 第 1 頁 / 共 4 頁
字號:
  },

  addClassName: function(element, className) {
    if (!(element = $(element))) return;
    return Element.classNames(element).add(className);
  },

  removeClassName: function(element, className) {
    if (!(element = $(element))) return;
    return Element.classNames(element).remove(className);
  },

  // removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element = $(element);
    for (var i = 0; i < element.childNodes.length; i++) {
      var node = element.childNodes[i];
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
        Element.remove(node);
    }
  },

  empty: function(element) {
    return $(element).innerHTML.match(/^\s*$/);
  },

  scrollTo: function(element) {
    element = $(element);
    var x = element.x ? element.x : element.offsetLeft,
        y = element.y ? element.y : element.offsetTop;
    window.scrollTo(x, y);
  },

  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 ? css.getPropertyValue(style) : null;
      } else if (element.currentStyle) {
        value = element.currentStyle[style.camelize()];
      }
    }

    if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
      if (Element.getStyle(element, 'position') == 'static') value = 'auto';

    return value == 'auto' ? null : value;
  },

  setStyle: function(element, style) {
    element = $(element);
    for (name in style)
      element.style[name.camelize()] = style[name];
  },

  getDimensions: function(element) {
    element = $(element);
    if (Element.getStyle(element, 'display') != 'none')
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display none,
    // so enable the element temporarily
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = '';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = 'none';
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
  },

  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;
      }
    }
  },

  undoPositioned: function(element) {
    element = $(element);
    if (element._madePositioned) {
      element._madePositioned = undefined;
      element.style.position =
        element.style.top =
        element.style.left =
        element.style.bottom =
        element.style.right = '';
    }
  },

  makeClipping: function(element) {
    element = $(element);
    if (element._overflow) return;
    element._overflow = element.style.overflow;
    if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
      element.style.overflow = 'hidden';
  },

  undoClipping: function(element) {
    element = $(element);
    if (element._overflow) return;
    element.style.overflow = element._overflow;
    element._overflow = undefined;
  }
});

var Toggle = new Object();
Toggle.display = Element.toggle;

/*--------------------------------------------------------------------------*/

Abstract.Insertion = function(adjacency) {
  this.adjacency = adjacency;
}

Abstract.Insertion.prototype = {
  initialize: function(element, content) {
    this.element = $(element);
    this.content = content.stripScripts();

    if (this.adjacency && this.element.insertAdjacentHTML) {
      try {
        this.element.insertAdjacentHTML(this.adjacency, this.content);
      } catch (e) {
        if (this.element.tagName.toLowerCase() == 'tbody') {
          this.insertContent(this.contentFromAnonymousTable());
        } else {
          throw e;
        }
      }
    } else {
      this.range = this.element.ownerDocument.createRange();
      if (this.initializeRange) this.initializeRange();
      this.insertContent([this.range.createContextualFragment(this.content)]);
    }

    setTimeout(function() {content.evalScripts()}, 10);
  },

  contentFromAnonymousTable: function() {
    var div = document.createElement('div');
    div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
    return $A(div.childNodes[0].childNodes[0].childNodes);
  }
}

var Insertion = new Object();

Insertion.Before = Class.create();
Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
  initializeRange: function() {
    this.range.setStartBefore(this.element);
  },

  insertContent: function(fragments) {
    fragments.each((function(fragment) {
      this.element.parentNode.insertBefore(fragment, this.element);
    }).bind(this));
  }
});

Insertion.Top = Class.create();
Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
  initializeRange: function() {
    this.range.selectNodeContents(this.element);
    this.range.collapse(true);
  },

  insertContent: function(fragments) {
    fragments.reverse(false).each((function(fragment) {
      this.element.insertBefore(fragment, this.element.firstChild);
    }).bind(this));
  }
});

Insertion.Bottom = Class.create();
Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
  initializeRange: function() {
    this.range.selectNodeContents(this.element);
    this.range.collapse(this.element);
  },

  insertContent: function(fragments) {
    fragments.each((function(fragment) {
      this.element.appendChild(fragment);
    }).bind(this));
  }
});

Insertion.After = Class.create();
Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
  initializeRange: function() {
    this.range.setStartAfter(this.element);
  },

  insertContent: function(fragments) {
    fragments.each((function(fragment) {
      this.element.parentNode.insertBefore(fragment,
        this.element.nextSibling);
    }).bind(this));
  }
});

/*--------------------------------------------------------------------------*/

Element.ClassNames = Class.create();
Element.ClassNames.prototype = {
  initialize: function(element) {
    this.element = $(element);
  },

  _each: function(iterator) {
    this.element.className.split(/\s+/).select(function(name) {
      return name.length > 0;
    })._each(iterator);
  },

  set: function(className) {
    this.element.className = className;
  },

  add: function(classNameToAdd) {
    if (this.include(classNameToAdd)) return;
    this.set(this.toArray().concat(classNameToAdd).join(' '));
  },

  remove: function(classNameToRemove) {
    if (!this.include(classNameToRemove)) return;
    this.set(this.select(function(className) {
      return className != classNameToRemove;
    }).join(' '));
  },

  toString: function() {
    return this.toArray().join(' ');
  }
}

Object.extend(Element.ClassNames.prototype, Enumerable);
var Field = {
  clear: function() {
    for (var i = 0; i < arguments.length; i++)
      $(arguments[i]).value = '';
  },

  focus: function(element) {
    $(element).focus();
  },

  present: function() {
    for (var i = 0; i < arguments.length; i++)
      if ($(arguments[i]).value == '') return false;
    return true;
  },

  select: function(element) {
    $(element).select();
  },

  activate: function(element) {
    element = $(element);
    element.focus();
    if (element.select)
      element.select();
  }
}

/*--------------------------------------------------------------------------*/

var Form = {
  serialize: function(form) {
    var elements = Form.getElements($(form));
    var queryComponents = new Array();

    for (var i = 0; i < elements.length; i++) {
      var queryComponent = Form.Element.serialize(elements[i]);
      if (queryComponent)
        queryComponents.push(queryComponent);
    }

    return queryComponents.join('&');
  },

  getElements: function(form) {
    form = $(form);
    var elements = new Array();

    for (tagName in Form.Element.Serializers) {
      var tagElements = form.getElementsByTagName(tagName);
      for (var j = 0; j < tagElements.length; j++)
        elements.push(tagElements[j]);
    }
    return elements;
  },

  getInputs: function(form, typeName, name) {
    form = $(form);
    var inputs = form.getElementsByTagName('input');

    if (!typeName && !name)
      return inputs;

    var matchingInputs = new Array();
    for (var i = 0; i < inputs.length; i++) {
      var input = inputs[i];
      if ((typeName && input.type != typeName) ||
          (name && input.name != name))
        continue;
      matchingInputs.push(input);
    }

    return matchingInputs;
  },

  disable: function(form) {
    var elements = Form.getElements(form);
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      element.blur();
      element.disabled = 'true';
    }
  },

  enable: function(form) {
    var elements = Form.getElements(form);
    for (var i = 0; i < elements.length; i++) {
      var element = elements[i];
      element.disabled = '';
    }
  },

  findFirstElement: function(form) {
    return Form.getElements(form).find(function(element) {
      return element.type != 'hidden' && !element.disabled &&
        ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
    });
  },

  focusFirstElement: function(form) {
    Field.activate(Form.findFirstElement(form));
  },

  reset: function(form) {
    $(form).reset();
  }
}

Form.Element = {
  serialize: function(element) {
    element = $(element);
    var method = element.tagName.toLowerCase();
    var parameter = Form.Element.Serializers[method](element);

    if (parameter) {
      var key = encodeURIComponent(parameter[0]);
      if (key.length == 0) return;

      if (parameter[1].constructor != Array)
        parameter[1] = [parameter[1]];

      return parameter[1].map(function(value) {
        return key + '=' + encodeURIComponent(value);
      }).join('&');
    }
  },

  getValue: function(element) {
    element = $(element);
    var method = element.tagName.toLowerCase();
    var parameter = Form.Element.Serializers[method](element);

    if (parameter)
      return parameter[1];
  }
}

Form.Element.Serializers = {
  input: function(element) {
    switch (element.type.toLowerCase()) {
      case 'submit':
      case 'hidden':
      case 'password':
      case 'text':
        return Form.Element.Serializers.textarea(element);
      case 'checkbox':
      case 'radio':
        return Form.Element.Serializers.inputSelector(element);
    }
    return false;
  },

  inputSelector: function(element) {
    if (element.checked)
      return [element.name, element.value];
  },

  textarea: function(element) {
    return [element.name, element.value];
  },

  select: function(element) {
    return Form.Element.Serializers[element.type == 'select-one' ?
      'selectOne' : 'selectMany'](element);
  },

  selectOne: function(element) {
    var value = '', opt, index = element.selectedIndex;
    if (index >= 0) {
      opt = element.options[index];
      value = opt.value;
      if (!value && !('value' in opt))
        value = opt.text;
    }
    return [element.name, value];
  },

  selectMany: function(element) {
    var value = new Array();
    for (var i = 0; i < element.length; i++) {
      var opt = element.options[i];
      if (opt.selected) {
        var optValue = opt.value;
        if (!optValue && !('value' in opt))
          optValue = opt.text;
        value.push(optValue);
      }
    }
    return [element.name, value];
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合一区二区三区| 国产亚洲精品bt天堂精选| 夜夜亚洲天天久久| 欧美在线你懂的| 日韩精品成人一区二区在线| 91精品国产欧美日韩| 三级一区在线视频先锋 | 韩日精品视频一区| 久久伊人蜜桃av一区二区| 成人av在线电影| 一区二区三区不卡视频| 欧美日韩dvd在线观看| 奇米色一区二区| 亚洲国产精品久久人人爱| 欧美日韩成人激情| 国产精品一区一区三区| 18欧美亚洲精品| 在线观看www91| 日本不卡视频在线观看| 欧美韩国日本综合| 欧美日韩二区三区| 国产在线精品一区二区 | 亚洲一区成人在线| 日韩视频一区二区三区在线播放| 极品少妇xxxx精品少妇偷拍| 日韩理论片中文av| 日韩欧美一二三| 99re成人精品视频| 三级一区在线视频先锋 | 欧美mv和日韩mv国产网站| 成人精品高清在线| 免费成人在线网站| 中文字幕一区在线| 91精品国产色综合久久| bt欧美亚洲午夜电影天堂| 亚洲在线观看免费| 国产精品素人一区二区| 91精品国产入口| 91网页版在线| 国内精品久久久久影院一蜜桃| 亚洲视频在线观看三级| 日韩精品最新网址| 欧美日本在线视频| 94-欧美-setu| 国产不卡视频一区| 色网综合在线观看| 韩国av一区二区三区在线观看| 一区二区三区美女| 国产拍欧美日韩视频二区| 91麻豆精品国产91久久久久| www.66久久| 国产乱码字幕精品高清av| 亚洲成a人v欧美综合天堂下载| 欧美韩国日本一区| 久久精品视频在线看| 日韩免费观看高清完整版在线观看| 一本到高清视频免费精品| 成人一区二区三区| 久久国内精品视频| 日韩激情视频网站| 亚洲第一在线综合网站| 亚洲一区二区免费视频| 亚洲女与黑人做爰| 最近中文字幕一区二区三区| 久久丝袜美腿综合| 久久久久久久电影| 久久新电视剧免费观看| 精品福利一区二区三区免费视频| 在线91免费看| 欧美日韩午夜精品| 欧美情侣在线播放| 欧美电影一区二区三区| 欧美日韩精品免费观看视频| 欧美亚洲国产怡红院影院| 91老师国产黑色丝袜在线| av毛片久久久久**hd| www.欧美亚洲| 一本大道久久a久久精品综合| 成人a级免费电影| aaa欧美大片| 91浏览器在线视频| 欧美性猛片aaaaaaa做受| 在线观看www91| 777色狠狠一区二区三区| 欧美情侣在线播放| 精品国产91亚洲一区二区三区婷婷| 欧美电视剧免费全集观看| 精品女同一区二区| 日本一区二区三区国色天香 | 国产精品久久久久久久第一福利| 国产色一区二区| 国产精品三级电影| 国产精品国模大尺度视频| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品美女一区二区三区| 在线视频国内一区二区| 国产麻豆成人传媒免费观看| 亚洲综合免费观看高清完整版| 91久久精品日日躁夜夜躁欧美| 日本中文字幕一区| 久久精品99国产国产精| 国产成人无遮挡在线视频| www.欧美亚洲| 91精品国产91综合久久蜜臀| 久久色视频免费观看| 中文字幕在线不卡| 美国三级日本三级久久99| 99精品欧美一区二区三区综合在线| 欧美亚洲综合久久| 中文字幕一区在线观看视频| 五月天欧美精品| 不卡电影一区二区三区| 精品福利一二区| 亚洲国产精品久久人人爱| 国产在线日韩欧美| 色猫猫国产区一区二在线视频| 久久色在线视频| 欧美喷潮久久久xxxxx| 日韩欧美一区在线| 国产精品久久久久一区二区三区| 亚洲午夜精品一区二区三区他趣| 蜜臀av一区二区在线观看 | 国产精品免费av| 亚洲国产精品久久艾草纯爱| 久久成人免费日本黄色| 白白色亚洲国产精品| 欧美一区二区三区在线电影| 国产拍欧美日韩视频二区| 污片在线观看一区二区| 国产精品中文字幕一区二区三区| 91九色最新地址| 国产午夜精品福利| 天堂久久一区二区三区| 国产91在线观看| 91精品国产综合久久精品性色 | 亚洲国产乱码最新视频| 国产精品456| 在线电影一区二区三区| 1024成人网| 国产在线国偷精品产拍免费yy| 欧洲中文字幕精品| 国产精品视频观看| 毛片av一区二区| 欧美精品乱码久久久久久| 亚洲日韩欧美一区二区在线| 美日韩一区二区| 欧美丝袜第三区| 亚洲视频中文字幕| 国产a精品视频| 日韩精品资源二区在线| 亚洲午夜日本在线观看| av成人免费在线| 国产日韩成人精品| 激情欧美一区二区三区在线观看| 欧美日本一区二区在线观看| 亚洲区小说区图片区qvod| 成人av免费网站| 久久久www成人免费无遮挡大片| 日韩电影网1区2区| 欧美大肚乱孕交hd孕妇| 五月天亚洲精品| 欧美巨大另类极品videosbest | 欧美一区二区精品| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲一区二区精品久久av| 91蜜桃在线观看| 一区精品在线播放| 99久久精品免费| 亚洲欧美激情插| 欧美中文一区二区三区| 亚洲成人av中文| 欧美日韩精品三区| 日韩国产欧美在线观看| 欧美日韩国产一二三| 五月婷婷综合网| 欧美电影在线免费观看| 麻豆精品在线播放| 精品国产免费人成在线观看| 国产精品18久久久久久久久| 久久久精品国产免费观看同学| 国产盗摄女厕一区二区三区| 欧美激情一区二区三区不卡| 99久久精品国产精品久久| 亚洲男同1069视频| 91麻豆精品国产91| 麻豆中文一区二区| 亚洲国产经典视频| 色婷婷久久综合| 婷婷国产在线综合| 精品国产凹凸成av人网站| 成人av网站免费观看| 亚洲国产你懂的| 精品少妇一区二区三区免费观看| 国产91色综合久久免费分享| 一区二区三区四区在线| 在线91免费看| 国产.欧美.日韩| 亚洲一区二区三区在线播放| 欧美一区二区三区四区久久| 国产精品99久久久|