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

📄 util.js

📁 动态增加表格和横向导航栏
💻 JS
📖 第 1 页 / 共 2 页
字号:
/* * Copyright 2005 Joe Walker * * 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. *//** * Declare a constructor function to which we can add real functions. * @constructor */function DWRUtil() { }/** * Enables you to react to return being pressed in an input * @see http://getahead.ltd.uk/dwr/browser/util/selectrange */DWRUtil.onReturn = function(event, action) {  if (!event) {    event = window.event;  }  if (event && event.keyCode && event.keyCode == 13) {    action();  }};/** * Select a specific range in a text box. Useful for 'google suggest' type functions. * @see http://getahead.ltd.uk/dwr/browser/util/selectrange */DWRUtil.selectRange = function(ele, start, end) {  var orig = ele;  ele = $(ele);  if (ele == null) {    DWRUtil.debug("selectRange() can't find an element with id: " + orig + ".");    return;  }  if (ele.setSelectionRange) {    ele.setSelectionRange(start, end);  }  else if (ele.createTextRange) {    var range = ele.createTextRange();    range.moveStart("character", start);    range.moveEnd("character", end - ele.value.length);    range.select();  }  ele.focus();};/** * Find the element in the current HTML document with the given id or ids * @see http://getahead.ltd.uk/dwr/browser/util/$ */var $;if (!$ && document.getElementById) {  $ = function() {    var elements = new Array();    for (var i = 0; i < arguments.length; i++) {      var element = arguments[i];      if (typeof element == 'string') {        element = document.getElementById(element);      }      if (arguments.length == 1) {        return element;      }      elements.push(element);    }    return elements;  }}else if (!$ && document.all) {  $ = function() {    var elements = new Array();    for (var i = 0; i < arguments.length; i++) {      var element = arguments[i];      if (typeof element == 'string') {        element = document.all[element];      }      if (arguments.length == 1) {        return element;      }      elements.push(element);    }    return elements;  }}/** * Like toString but aimed at debugging * @see http://getahead.ltd.uk/dwr/browser/util/todescriptivestring */DWRUtil.toDescriptiveString = function(data, level, depth) {  var reply = "";  var i = 0;  var value;  var obj;  if (level == null) level = 0;  if (depth == null) depth = 0;  if (data == null) return "null";  if (DWRUtil._isArray(data)) {    if (data.length == 0) reply += "[]";    else {      if (level != 0) reply += "[\n";      else reply = "[";      for (i = 0; i < data.length; i++) {        try {          obj = data[i];          if (obj == null || typeof obj == "function") {            continue;          }          else if (typeof obj == "object") {            if (level > 0) value = DWRUtil.toDescriptiveString(obj, level - 1, depth + 1);            else value = DWRUtil._detailedTypeOf(obj);          }          else {            value = "" + obj;            value = value.replace(/\/n/g, "\\n");            value = value.replace(/\/t/g, "\\t");          }        }        catch (ex) {          value = "" + ex;        }       if (level != 0)  {          reply += DWRUtil._indent(level, depth + 2) + value + ", \n";       }        else {          if (value.length > 13) value = value.substring(0, 10) + "...";          reply += value + ", ";          if (i > 5) {            reply += "...";            break;          }        }      }      if (level != 0) reply += DWRUtil._indent(level, depth) + "]";      else reply += "]";    }    return reply;  }  if (typeof data == "string" || typeof data == "number" || DWRUtil._isDate(data)) {    return data.toString();  }  if (typeof data == "object") {    var typename = DWRUtil._detailedTypeOf(data);    if (typename != "Object")  reply = typename + " ";    if (level != 0) reply += "{\n";    else reply = "{";    var isHtml = DWRUtil._isHTMLElement(data);    for (var prop in data) {      if (isHtml) {        // HTML nodes have far too much stuff. Chop out the constants        if (prop.toUpperCase() == prop || prop == "title" ||          prop == "lang" || prop == "dir" || prop == "className" ||          prop == "form" || prop == "name" || prop == "prefix" ||          prop == "namespaceURI" || prop == "nodeType" ||          prop == "firstChild" || prop == "lastChild" ||          prop.match(/^offset/)) {          continue;        }      }      value = "";      try {        obj = data[prop];        if (obj == null || typeof obj == "function") {          continue;        }        else if (typeof obj == "object") {          if (level > 0) {            value = "\n";            value += DWRUtil._indent(level, depth + 2);            value = DWRUtil.toDescriptiveString(obj, level - 1, depth + 1);          }          else {            value = DWRUtil._detailedTypeOf(obj);          }        }        else {          value = "" + obj;          value = value.replace(/\/n/g, "\\n");          value = value.replace(/\/t/g, "\\t");        }      }      catch (ex) {        value = "" + ex;      }      if (level == 0 && value.length > 13) value = value.substring(0, 10) + "...";      var propStr = prop;      if (propStr.length > 30) propStr = propStr.substring(0, 27) + "...";      if (level != 0) reply += DWRUtil._indent(level, depth + 1);      reply += prop + ":" + value + ", ";      if (level != 0) reply += "\n";      i++;      if (level == 0 && i > 5) {        reply += "...";        break;      }    }    reply += DWRUtil._indent(level, depth);    reply += "}";    return reply;  }  return data.toString();};/** * @private Indenting for DWRUtil.toDescriptiveString */DWRUtil._indent = function(level, depth) {  var reply = "";  if (level != 0) {    for (var j = 0; j < depth; j++) {      reply += "\u00A0\u00A0";    }    reply += " ";  }  return reply;};/** * Setup a GMail style loading message. * @see http://getahead.ltd.uk/dwr/browser/util/useloadingmessage */DWRUtil.useLoadingMessage = function(message) {  var loadingMessage;  if (message) loadingMessage = message;  else loadingMessage = "Loading";  DWREngine.setPreHook(function() {    var disabledZone = $('disabledZone');    if (!disabledZone) {      disabledZone = document.createElement('div');      disabledZone.setAttribute('id', 'disabledZone');      disabledZone.style.position = "absolute";      disabledZone.style.zIndex = "1000";      disabledZone.style.left = "0px";      disabledZone.style.top = "0px";      disabledZone.style.width = "100%";      disabledZone.style.height = "100%";      document.body.appendChild(disabledZone);      var messageZone = document.createElement('div');      messageZone.setAttribute('id', 'messageZone');      messageZone.style.position = "absolute";      messageZone.style.top = "0px";      messageZone.style.right = "0px";      messageZone.style.background = "red";      messageZone.style.color = "white";      messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";      messageZone.style.padding = "4px";      disabledZone.appendChild(messageZone);      var text = document.createTextNode(loadingMessage);      messageZone.appendChild(text);    }    else {      $('messageZone').innerHTML = loadingMessage;      disabledZone.style.visibility = 'visible';    }  });  DWREngine.setPostHook(function() {    $('disabledZone').style.visibility = 'hidden';  });}/** * Set the value an HTML element to the specified value. * @see http://getahead.ltd.uk/dwr/browser/util/setvalue */DWRUtil.setValue = function(ele, val) {  if (val == null) val = "";  var orig = ele;  var nodes, i;  ele = $(ele);  // We can work with names and need to sometimes for radio buttons  if (ele == null) {    nodes = document.getElementsByName(orig);    if (nodes.length >= 1) {      ele = nodes.item(0);    }  }  if (ele == null) {    DWRUtil.debug("setValue() can't find an element with id/name: " + orig + ".");    return;  }  if (DWRUtil._isHTMLElement(ele, "select")) {    if (ele.type == "select-multiple" && DWRUtil._isArray(val)) {      DWRUtil._selectListItems(ele, val);      }    else {      DWRUtil._selectListItem(ele, val);    }    return;  }  if (DWRUtil._isHTMLElement(ele, "input")) {    if (nodes && ele.type == "radio") {      for (i = 0; i < nodes.length; i++) {        if (nodes.item(i).type == "radio") {          nodes.item(i).checked = (nodes.item(i).value == val);        }      }    }    else {      switch (ele.type) {      case "checkbox":      case "check-box":      case "radio":        ele.checked = (val == true);        return;      default:        ele.value = val;        return;      }    }  }  if (DWRUtil._isHTMLElement(ele, "textarea")) {    ele.value = val;    return;  }  // If the value to be set is a DOM object then we try importing the node  // rather than serializing it out  if (val.nodeType) {    if (val.nodeType == 9 /*Node.DOCUMENT_NODE*/) {      val = val.documentElement;    }    val = DWRUtil._importNode(ele.ownerDocument, val, true);    ele.appendChild(val);    return;  }  // Fall back to innerHTML  ele.innerHTML = val;};/** * @private Find multiple items in a select list and select them. Used by setValue() * @param ele The select list item * @param val The array of values to select */DWRUtil._selectListItems = function(ele, val) {  // We deal with select list elements by selecting the matching option  // Begin by searching through the values  var found  = false;  var i;  var j;  for (i = 0; i < ele.options.length; i++) {    ele.options[i].selected = false;    for (j = 0; j < val.length; j++) {      if (ele.options[i].value == val[j]) {        ele.options[i].selected = true;      }    }  }  // If that fails then try searching through the visible text  if (found) return;  for (i = 0; i < ele.options.length; i++) {    for (j = 0; j < val.length; j++) {      if (ele.options[i].text == val[j]) {        ele.options[i].selected = true;      }    }  }};/** * @private Find an item in a select list and select it. Used by setValue() * @param ele The select list item * @param val The value to select */DWRUtil._selectListItem = function(ele, val) {  // We deal with select list elements by selecting the matching option  // Begin by searching through the values  var found  = false;  var i;  for (i = 0; i < ele.options.length; i++) {    if (ele.options[i].value == val) {      ele.options[i].selected = true;      found = true;    }    else {      ele.options[i].selected = false;    }  }  // If that fails then try searching through the visible text  if (found) return;  for (i = 0; i < ele.options.length; i++) {    if (ele.options[i].text == val) {      ele.options[i].selected = true;      break;    }  }}/** * Read the current value for a given HTML element. * @see http://getahead.ltd.uk/dwr/browser/util/getvalue */DWRUtil.getValue = function(ele) {  var orig = ele;  ele = $(ele);  // We can work with names and need to sometimes for radio buttons, and IE has  // an annoying bug where  var nodes = document.getElementsByName(orig);  if (ele == null && nodes.length >= 1) {    ele = nodes.item(0);  }  if (ele == null) {    DWRUtil.debug("getValue() can't find an element with id/name: " + orig + ".");    return "";  }  if (DWRUtil._isHTMLElement(ele, "select")) {    // This is a bit of a scam because it assumes single select    // but I'm not sure how we should treat multi-select.    var sel = ele.selectedIndex;    if (sel != -1) {      var reply = ele.options[sel].value;      if (reply == null || reply == "") {        reply = ele.options[sel].text;      }      return reply;    }    else {      return "";    }  }  if (DWRUtil._isHTMLElement(ele, "input")) {    if (nodes && ele.type == "radio") {      for (i = 0; i < nodes.length; i++) {

⌨️ 快捷键说明

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