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

📄 ajaxtags.js

📁 这是linux下ssl vpn的实现程序
💻 JS
📖 第 1 页 / 共 3 页
字号:
/**

 * Copyright 2005 Darren L. Spurgeon

 * 

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 * 

 * http://www.apache.org/licenses/LICENSE-2.0

 * 

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */



var AjaxJspTag = {

  Version: '1.2'

}



/**

 * Global Variables

 */

AJAX_DEFAULT_PARAMETER = "ajaxParameter";

AJAX_PORTLET_MAX = 1;

AJAX_PORTLET_MIN = 2;

AJAX_PORTLET_CLOSE = 3;

AJAX_CALLOUT_OVERLIB_DEFAULT = "STICKY,"

      + "CLOSECLICK,"

      + "DELAY,250,"

      + "TIMEOUT,5000,"

      + "VAUTO,WRAPMAX,240,"

      + "CSSCLASS,FGCLASS,'olfg',BGCLASS,'olbg',CGCLASS,'olcg',"

      + "CAPTIONFONTCLASS,'olcap',CLOSEFONTCLASS,'olclo',TEXTFONTCLASS,'oltxt'";





/**

 * Type Detection

 */

function isAlien(a) {

  return isObject(a) && typeof a.constructor != 'function';

}



function isArray(a) {

  return isObject(a) && a.constructor == Array;

}



function isBoolean(a) {

  return typeof a == 'boolean';

}



function isEmpty(o) {

  var i, v;

  if (isObject(o)) {

    for (i in o) {

      v = o[i];

      if (isUndefined(v) && isFunction(v)) {

        return false;

      }

    }

  }

  return true;

}



function isFunction(a) {

  return typeof a == 'function';

}



function isNull(a) {

  return typeof a == 'object' && !a;

}



function isNumber(a) {

  return typeof a == 'number' && isFinite(a);

}



function isObject(a) {

  return (a && typeof a == 'object') || isFunction(a);

}



function isString(a) {

  return typeof a == 'string';

}



function isUndefined(a) {

  return typeof a == 'undefined';

}





/**

 * Utility Functions

 */



function addOnLoadEvent(func) {

  var oldonload = window.onload;

  if (typeof window.onload != 'function') {

    window.onload = func;

  } else {

    window.onload = function() {

      oldonload();

      func();

    }

  }

}



/*

 * Extract querystring from a URL

 */

function extractQueryString(url) {

  var ret = (url.indexOf('?') >= 0 && url.indexOf('?') < (url.length-1))

    ? url.substr(url.indexOf('?')+1)

    : '';

  return ret;

}



/*

 * Trim the querystring from a URL

 */

function trimQueryString(url) {

  var ret = url.indexOf('?') >= 0

    ? url.substring(0, url.indexOf('?'))

    : url;

  return ret;

}



function delimitQueryString(qs) {

  var ret = '';

  if (qs.length > 0) {

    var params = qs.split('&');

    for (var i=0; i<params.length; i++) {

      if (i > 0) ret += ',';

      ret += params[i];

    }

  }

  return ret;

}



function buildParameterString(parameterList) {

  var returnString = '';

  var params = (parameterList || '').split(',');

  if (params != null) {

    for (var p=0; p<params.length; p++) {

      var pair = params[p].split('=');

      var key = pair[0];

      var val = pair[1];

      // if val is not null and it contains a match for a variable, then proceed

      if (!isEmpty(val) || isString(val)) {

        var varList = val.match( new RegExp("\\{[\\w\\.\\(\\)\\[\\]]*\\}", 'g') );

        if (!isNull(varList)) {

          var field = $(varList[0].substring(1, varList[0].length-1));

          switch (field.type) {

            case 'checkbox':

            case 'radio':

            case 'text':

            case 'textarea':

            case 'password':

            case 'hidden':

            case 'select-one':

              returnString += '&' + key + '=' + encodeURIComponent(field.value);

              break;

            case 'select-multiple':

              var fieldValue = $F(varList[0].substring(1, varList[0].length-1));

              for (var i=0; i<fieldValue.length; i++) {

                returnString += '&' + key + '=' + encodeURIComponent(fieldValue[i]);

              }

              break;

            default:

              returnString += '&' + key + '=' + encodeURIComponent(field.innerHTML);

              break;

          }

        } else {

          // just add back the pair

          returnString += '&' + key + '=' + encodeURIComponent(val);

        }

      }

    }

  }



  if (returnString.charAt(0) == '&') {

    returnString = returnString.substr(1);

  }

  return returnString;

}



function getElementsByClassName(node, className) {

  var children = node.getElementsByTagName('*');

  var elements = new Array();



  for (var i = 0; i < children.length; i++) {

    var child = children[i];

    var classNames = child.className.split(' ');

    for (var j = 0; j < classNames.length; j++) {

      if (classNames[j] == className) {

        elements.push(child);

        break;

      }

    }

  }

  return elements;

}



function evalBoolean(value, defaultValue) {

  if (!isNull(value) && isString(value)) {

    return ("true" == value.toLowerCase() || "yes" == value.toLowerCase()) ? "true" : "false";

  } else {

    return defaultValue == true ? "true" : "false";

  }

}





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

/* Example File From "_JavaScript and DHTML Cookbook"

   Published by O'Reilly & Associates

   Copyright 2003 Danny Goodman

*/



// utility function to retrieve a future expiration date in proper format;

// pass three integer parameters for the number of days, hours,

// and minutes from now you want the cookie to expire; all three

// parameters required, so use zeros where appropriate

function getExpDate(days, hours, minutes) {

  var expDate = new Date();

  if (typeof days == "number" && typeof hours == "number" && typeof hours == "number") {

    expDate.setDate(expDate.getDate() + parseInt(days));

    expDate.setHours(expDate.getHours() + parseInt(hours));

    expDate.setMinutes(expDate.getMinutes() + parseInt(minutes));

    return expDate.toGMTString();

  }

}



// utility function called by getCookie()

function getCookieVal(offset) {

  var endstr = document.cookie.indexOf (";", offset);

  if (endstr == -1) {

    endstr = document.cookie.length;

  }

  return unescape(document.cookie.substring(offset, endstr));

}



// primary function to retrieve cookie by name

function getCookie(name) {

  var arg = name + "=";

  var alen = arg.length;

  var clen = document.cookie.length;

  var i = 0;

  while (i < clen) {

    var j = i + alen;

    if (document.cookie.substring(i, j) == arg) {

      return getCookieVal(j);

    }

    i = document.cookie.indexOf(" ", i) + 1;

    if (i == 0) break;

  }

  return null;

}



// store cookie value with optional details as needed

function setCookie(name, value, expires, path, domain, secure) {

  document.cookie = name + "=" + escape (value) +

    ((expires) ? "; expires=" + expires : "") +

    ((path) ? "; path=" + path : "") +

    ((domain) ? "; domain=" + domain : "") +

    ((secure) ? "; secure" : "");

}



// remove the cookie by setting ancient expiration date

function deleteCookie(name,path,domain) {

  if (getCookie(name)) {

    document.cookie = name + "=" +

      ((path) ? "; path=" + path : "") +

      ((domain) ? "; domain=" + domain : "") +

      "; expires=Thu, 01-Jan-70 00:00:01 GMT";

  }

}

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

/* End Copyright 2003 Danny Goodman */





/**

 * Response Parsers

 */

AbstractResponseParser = function() {};



ResponseTextParser = Class.create();

ResponseTextParser.prototype = Object.extend(new AbstractResponseParser(), {

  initialize: function() {

    this.type = "text";

  },



  load: function(request) {

    this.content = request.responseText;

    this.split();

  },



  split: function() {

    this.itemList = new Array();

    var lines = this.content.split('\n');

    for (var i=0; i<lines.length; i++) {

      this.itemList.push(lines[i].split(','));

    }

  }

});



ResponseXmlParser = Class.create();

ResponseXmlParser.prototype = Object.extend(new AbstractResponseParser(), {

  initialize: function() {

    this.type = "xml";

  },



  load: function(request) {

    this.content = request.responseXML;

    this.parse();

  },



  parse: function() {

    var root = this.content.documentElement;

    var responseNodes = root.getElementsByTagName("response");

    this.itemList = new Array();

    if (responseNodes.length > 0) {

      var responseNode = responseNodes[0];

      var itemNodes = responseNode.getElementsByTagName("item");

      for (var i=0; i<itemNodes.length; i++) {

        var nameNodes = itemNodes[i].getElementsByTagName("name");

        var valueNodes = itemNodes[i].getElementsByTagName("value");

        if (nameNodes.length > 0 && valueNodes.length > 0) {

          var name = nameNodes[0].firstChild.nodeValue;

          var value = valueNodes[0].firstChild.nodeValue;

          this.itemList.push(new Array(name, value));

        }

      }

    }

  }

});



ResponseHtmlParser = Class.create();

ResponseHtmlParser.prototype = Object.extend(new AbstractResponseParser(), {

  initialize: function() {

    this.type = "html";

  },



  load: function(request) {

    this.content = request.responseText;

  }

});



ResponseXmlToHtmlParser = Class.create();

ResponseXmlToHtmlParser.prototype = Object.extend(new AbstractResponseParser(), {

  initialize: function() {

    this.type = "xmltohtml";

  },



  load: function(request) {

    this.xml = request.responseXML;

    this.parse();

  },



  parse: function() {

    this.content = '';

    var root = this.xml.documentElement;

    var responseNodes = root.getElementsByTagName("response");

    if (responseNodes.length > 0) {

      var responseNode = responseNodes[0];

      var itemNodes = responseNode.getElementsByTagName("item");

      for (var i=0; i<itemNodes.length; i++) {

        var nameNodes = itemNodes[i].getElementsByTagName("name");

        var valueNodes = itemNodes[i].getElementsByTagName("value");

        if (nameNodes.length > 0 && valueNodes.length > 0) {

          var name = nameNodes[0].firstChild.nodeValue;

          var value = valueNodes[0].firstChild.nodeValue;

          this.content += '<h1>' + name + '</h1>';

          this.content += '<div>' + value + '</div>';

        }

      }

    }

  }

});



ResponseXmlToHtmlListParser = Class.create();

ResponseXmlToHtmlListParser.prototype = Object.extend(new AbstractResponseParser(), {

  initialize: function() {

    this.type = "xmltohtmllist";

  },



  load: function(request) {

    this.xml = request.responseXML;

    this.parse();

  },



  parse: function() {

    var ul = '<ul>';

    var root = this.xml.documentElement;



    var responseNodes = root.getElementsByTagName("response");

    if (responseNodes.length > 0) {

      var responseNode = responseNodes[0];

      var itemNodes = responseNode.getElementsByTagName("item");

      for (var i=0; i<itemNodes.length; i++) {

        var nameNodes = itemNodes[i].getElementsByTagName("name");

        var valueNodes = itemNodes[i].getElementsByTagName("value");

        if (nameNodes.length > 0 && valueNodes.length > 0) {

          var name = nameNodes[0].firstChild.nodeValue;

          var value = valueNodes[0].firstChild.nodeValue;

          ul += '<li id="' + value + '">' + name + '</li>';

        }

      }

    }

    ul += '</ul>';

    this.content = ul;

  }

});





/**

 * AjaxTags

 */



AjaxJspTag.Base = function() {};

AjaxJspTag.Base.prototype = {



  resolveParameters: function() {

    // Strip URL of querystring and append it to parameters

    var qs = delimitQueryString(extractQueryString(this.url));

    if (this.options.parameters) {

      this.options.parameters += ',' + qs;

    } else {

      this.options.parameters = qs;

    }

    this.url = trimQueryString(this.url);

    if (this.options.parameters.length > 0

        && this.options.parameters.charAt(this.options.parameters.length-1) == ',') {

      this.options.parameters = this.options.parameters.substr(0,this.options.parameters.length-1);

    }

  }

⌨️ 快捷键说明

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