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

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

?? prototype_mini.js

?? ecside 控件的使用,ext的拓展
?? JS
?? 第 1 頁 / 共 2 頁
字號:
  }
};

Ajax.Request = Class.create();
Ajax.Request.Events =
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];

Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
  _complete: false,

  initialize: function(url, options) {
    this.transport = Ajax.getTransport();
    this.setOptions(options);
    this.request(url);
  },

  request: function(url) {
    this.url = url;
    this.method = this.options.method;
    var params = Object.clone(this.options.parameters);

    if (!['get', 'post'].include(this.method)) {
      // simulate other verbs over post
      params['_method'] = this.method;
      this.method = 'post';
    }

    this.parameters = params;

    if (params = Hash.toQueryString(params)) {
      // when GET, append parameters to URL
      if (this.method == 'get')
        this.url += (this.url.include('?') ? '&' : '?') + params;
      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
        params += '&_=';
    }

	// ECSide Debug : 
	//     alert(url+"\n\n"+params+"\n\n"+this.options.onComplete);

    try {
      if (this.options.onCreate) this.options.onCreate(this.transport);
      Ajax.Responders.dispatch('onCreate', this, this.transport);

      this.transport.open(this.method.toUpperCase(), this.url,
        this.options.asynchronous);

      if (this.options.asynchronous){
        setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10);
	  }
      this.transport.onreadystatechange = this.onStateChange.bind(this);
      this.setRequestHeaders();

      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
      this.transport.send(this.body);

      /* Force Firefox to handle ready state 4 for synchronous requests */
      if (!this.options.asynchronous && this.transport.overrideMimeType)
        this.onStateChange();
        
    } catch (e) {
      this.dispatchException(e);
    }
  },

  onStateChange: function() {
    var readyState = this.transport.readyState;
    if (readyState > 1 && !((readyState == 4) && this._complete))
      this.respondToReadyState(this.transport.readyState);
  },

  setRequestHeaders: function() {
    var headers = {
      'X-Requested-With': 'XMLHttpRequest',
      'X-Prototype-Version': Prototype.Version,
      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
    };

    if (this.method == 'post') {
      headers['Content-type'] = this.options.contentType +
        (this.options.encoding ? '; charset=' + this.options.encoding : '');

      /* Force "Connection: close" for older Mozilla browsers to work
       * around a bug where XMLHttpRequest sends an incorrect
       * Content-length header. See Mozilla Bugzilla #246651.
       */
      if (this.transport.overrideMimeType &&
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
            headers['Connection'] = 'close';
    }

    // user-defined headers
    if (typeof this.options.requestHeaders == 'object') {
      var extras = this.options.requestHeaders;

      if (typeof extras.push == 'function')
        for (var i = 0, length = extras.length; i < length; i += 2)
          headers[extras[i]] = extras[i+1];
      else
        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
    }

    for (var name in headers)
      this.transport.setRequestHeader(name, headers[name]);
  },

  success: function() {
    return !this.transport.status
        || (this.transport.status >= 200 && this.transport.status < 300);
  },

  respondToReadyState: function(readyState) {
    var state = Ajax.Request.Events[readyState];
    var transport = this.transport, json = this.evalJSON();

    if (state == 'Complete') {
      try {
        this._complete = true;
        (this.options['on' + this.transport.status]
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
         || Prototype.emptyFunction)(transport, json);
      } catch (e) {
        this.dispatchException(e);
      }

      var contentType = this.getHeader('Content-type');
      if (contentType && contentType.strip().
        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
          this.evalResponse();
    }

    try {
      (this.options['on' + state] || Prototype.emptyFunction)(transport, json);
      Ajax.Responders.dispatch('on' + state, this, transport, json);
    } catch (e) {
      this.dispatchException(e);
    }

    if (state == 'Complete') {
      // avoid memory leak in MSIE: clean up
      this.transport.onreadystatechange = Prototype.emptyFunction;
    }
  },

  getHeader: function(name) {
    try {
      return this.transport.getResponseHeader(name);
    } catch (e) { return null }
  },

  evalJSON: function() {
    try {
      var json = this.getHeader('X-JSON');
	 //ECSide modify : return json ? json.evalJSON() : null;
      return json ? eval('(' + json + ')') : null;
    } catch (e) { return null }
  },

  evalResponse: function() {
    try {
     //ECSide modify : return eval((this.transport.responseText || '').unfilterJSON());
      return eval(this.transport.responseText);
    } catch (e) {
      this.dispatchException(e);
    }
  },

  dispatchException: function(exception) {
    (this.options.onException || Prototype.emptyFunction)(this, exception);
    Ajax.Responders.dispatch('onException', this, exception);
  }
});




/* =================================================================== */

function $(element) {
  if (arguments.length > 1) {
    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
      elements.push($(arguments[i]));
    return elements;
  }
  if (typeof element == 'string') {
    element = document.getElementById(element);
  }
  //ECSide modify :  return Element.extend(element);
  return element;
}


var Form = {
  
  serializeElements: function(elements, getHash) {
    var data = elements.inject({}, function(result, element) {
      if (!element.disabled && element.name) {
        //ECSide modify : var key = element.name, value = $(element).getValue();
		var key = element.name, value =$F(element);
        if (value != null) { 
         	if (key in result) {
            if (result[key].constructor != Array) result[key] = [result[key]];
            result[key].push(value);
          }
          else result[key] = value;
        }
      }
      return result;
    });
    
    return getHash ? data : Hash.toQueryString(data);
  }
};

Form.Methods = {
  serialize: function(form, getHash) {
    return Form.serializeElements(Form.getElements(form), getHash);
  },

  getElements: function(form) {
    return $A($(form).getElementsByTagName('*')).inject([],
      function(elements, child) {
        if (Form.Element.Serializers[child.tagName.toLowerCase()]){
          //ECSide modify : elements.push(Element.extend(child));
		  elements.push(child);
		}
        return elements;
      }
    );
  },
 
  request: function(form, options) {
    form = $(form), options = Object.clone(options || {});

    var params = options.parameters;
	//ECSide modify : options.parameters = form.serialize(true);
	options.parameters = Form.serialize(form,true);

    
    if (params) {
      if (typeof params == 'string') params = params.toQueryParams();
      Object.extend(options.parameters, params);
    }

    //ECSide modify : if (form.hasAttribute('method') && !options.method) {
	if (Form.Element.hasAttribute(form,'method') && !options.method) {
      options.method = form.method;
	}
	//ECSide modify : return new Ajax.Request(form.readAttribute('action'), options);
    return new Ajax.Request(form.action, options);
  }
}

Object.extend(Form, Form.Methods);

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

Form.Element = {
  select: function(element) {
    $(element).select();
    return element;
  }
}

Form.Element.Methods = {
  serialize: function(element) {
    element = $(element);
    if (!element.disabled && element.name) {
      //ECSide modify : var value = element.getValue();
	  var value = $F(element);
      if (value != undefined) {
        var pair = {};
        pair[element.name] = value;
        return Hash.toQueryString(pair);
      }
    }
    return '';
  },

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

  /* ECSide add :  */
  hasAttribute : function(element,attributeName){
	return	element.getAttribute(attributeName)!=null;
  }
}

Object.extend(Form.Element, Form.Element.Methods);


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

//ECSide modify : var $F = Form.Element.Methods.getValue;
var $F = Form.Element.getValue;

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

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

  inputSelector: function(element) {
    return element.checked ? element.value : null;
  },

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

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

  selectOne: function(element) {
    var index = element.selectedIndex;
    return index >= 0 ? this.optionValue(element.options[index]) : null;
  },

  selectMany: function(element) {
    var values, length = element.length;
    if (!length) return null;

    for (var i = 0, values = []; i < length; i++) {
      var opt = element.options[i];
      if (opt.selected) values.push(this.optionValue(opt));
    }
    return values;
  },

  optionValue: function(opt) {
    // extend element because hasAttribute may not be native
    //ECSide modify : return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
	 return Form.Element.hasAttribute(opt,'value') ? opt.value : opt.text;
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产a视频精品免费观看| 韩日欧美一区二区三区| 欧美www视频| 欧美一区二区三区日韩视频| 欧美亚洲免费在线一区| 色噜噜狠狠成人网p站| 91美女片黄在线观看91美女| 99久久777色| 在线观看亚洲一区| 欧美日韩性生活| 777午夜精品免费视频| 欧美一区二区三区在| 欧美电影免费观看高清完整版| 91精品中文字幕一区二区三区| 91精品国产全国免费观看 | av在线播放不卡| 国产sm精品调教视频网站| jvid福利写真一区二区三区| 色综合久久88色综合天天6| 色综合天天综合给合国产| 欧美日精品一区视频| 日韩欧美的一区| 国产欧美一区二区精品秋霞影院 | 日韩欧美www| 久久综合久久综合久久综合| 国产欧美综合在线观看第十页| 国产精品久久午夜夜伦鲁鲁| 亚洲影院理伦片| 日产欧产美韩系列久久99| 国产精品123| 欧美综合在线视频| www精品美女久久久tv| 亚洲欧美偷拍卡通变态| 蜜臀久久久99精品久久久久久| 国产盗摄女厕一区二区三区| 91福利社在线观看| 久久蜜桃一区二区| 亚洲图片欧美综合| 国产成a人无v码亚洲福利| 欧美日韩在线电影| 亚洲国产高清不卡| 久久精品国产一区二区| 一本色道亚洲精品aⅴ| 精品国产91久久久久久久妲己| 亚洲色图在线播放| 国产一区二区在线视频| 欧美日韩另类国产亚洲欧美一级| 国产性色一区二区| 日韩国产精品久久久| 99国产精品一区| 欧美精品一区二区三区高清aⅴ| 亚洲青青青在线视频| 国产伦精品一区二区三区在线观看| 91国在线观看| 亚洲国产成人一区二区三区| 婷婷综合久久一区二区三区| 91蜜桃免费观看视频| 久久精品夜色噜噜亚洲aⅴ| 日本aⅴ精品一区二区三区 | 久久色成人在线| 午夜精品影院在线观看| 一本久久a久久免费精品不卡| 久久精品一区二区三区不卡牛牛| 美女高潮久久久| 欧美日韩精品系列| 亚洲福利一二三区| 欧美日韩一级二级三级| 亚洲精品水蜜桃| 91看片淫黄大片一级| 亚洲视频在线观看一区| 国产不卡免费视频| 国产日韩亚洲欧美综合| 高清成人免费视频| 国产精品入口麻豆原神| 成人亚洲一区二区一| 国产精品五月天| 成人高清在线视频| 中文字幕一区二区视频| 成人免费毛片片v| 最新国产精品久久精品| 99久久99久久精品免费看蜜桃| 18欧美乱大交hd1984| 日本精品一级二级| 丝袜美腿亚洲综合| 欧美xxxxxxxxx| 国产suv精品一区二区三区| 国产精品久久久久一区二区三区 | 欧美成人欧美edvon| 日韩黄色片在线观看| 日韩欧美国产三级电影视频| 国内精品伊人久久久久av一坑| 欧美精品一区二区三区一线天视频| 精品一区二区三区在线观看| 久久影院午夜片一区| 成人av电影在线观看| 亚洲欧美日韩电影| 91精品久久久久久久91蜜桃| 久久成人免费网站| 中文字幕一区二区视频| 欧美亚洲精品一区| 国产乱一区二区| 亚洲免费观看在线视频| 欧美一区二区三区四区高清| 国产精品一区二区x88av| 亚洲欧美另类在线| 日韩亚洲欧美高清| 成人精品国产免费网站| 午夜欧美电影在线观看| 久久精品欧美日韩| 欧美三级中文字幕| 国产a久久麻豆| 亚洲6080在线| 国产精品免费免费| 日韩欧美视频在线| 91美女在线观看| 国产剧情一区在线| 亚洲一区二区三区爽爽爽爽爽| 精品美女在线播放| 欧美性一二三区| 国产精品18久久久久久久久| 亚洲国产成人精品视频| 国产人妖乱国产精品人妖| 欧美日韩高清在线播放| 不卡电影免费在线播放一区| 亚洲国产精品一区二区www在线| 91精品国产综合久久久久久久| 东方aⅴ免费观看久久av| 日韩高清电影一区| 亚洲视频免费在线| 国产婷婷色一区二区三区四区| 日韩欧美美女一区二区三区| 色综合欧美在线视频区| 成人午夜视频在线观看| 精品一二三四区| 久久精品国产在热久久| 日韩精品一区第一页| 亚洲国产综合人成综合网站| 亚洲视频免费在线| 国产精品久久久久久久蜜臀| www国产成人免费观看视频 深夜成人网 | 一本色道久久综合亚洲91 | 欧美一区二区观看视频| 日本韩国欧美在线| 不卡高清视频专区| fc2成人免费人成在线观看播放| 国内成+人亚洲+欧美+综合在线| 日精品一区二区| 一区二区三区在线视频播放| 中文字幕一区二区视频| 中文字幕第一区综合| 国产欧美1区2区3区| 久久久久97国产精华液好用吗 | 国产成人精品www牛牛影视| 久久精品国产精品亚洲红杏| 日韩精品高清不卡| 免费成人在线观看视频| 美女视频一区二区| 精品亚洲成av人在线观看| 麻豆成人久久精品二区三区红| 蜜乳av一区二区| 精彩视频一区二区| 国产精品一区二区三区四区| 国产精品亚洲人在线观看| 丁香天五香天堂综合| 91丝袜呻吟高潮美腿白嫩在线观看| 99精品国产视频| 欧美日韩中字一区| 日韩欧美亚洲一区二区| 国产亚洲精品bt天堂精选| 亚洲欧美中日韩| 亚洲午夜精品久久久久久久久| 亚洲va国产va欧美va观看| 狠狠色综合日日| 成人在线视频一区二区| 色婷婷av一区二区三区gif| 欧美人动与zoxxxx乱| 日韩欧美卡一卡二| 国产精品成人网| 视频一区视频二区在线观看| 久久国产免费看| 不卡av电影在线播放| 欧美婷婷六月丁香综合色| 欧美一级日韩不卡播放免费| 久久免费美女视频| 国产精品国产三级国产普通话蜜臀| 自拍av一区二区三区| 日日夜夜精品视频免费| 成人性生交大片| 在线播放国产精品二区一二区四区| 精品免费日韩av| 亚洲一区在线电影| 久久99九九99精品| 91麻豆福利精品推荐| 精品少妇一区二区| 一区二区三区四区在线免费观看| 久久66热re国产| 欧美在线观看你懂的| 2020国产精品自拍| 五月婷婷久久综合| av一二三不卡影片|