傲雪凌峰
一个后来者,期待在技术上有所进步。
//获取元素宽度
function W$(id)
{
 id = $(id);
 if(id==null){
  return 0;
 }
 if(id.clip!=null){
  return id.clip.right-id.clip.left;
 }
 else if(id.scrollWidth!=null){
  return id.scrollWidth;
 }
 else if(id.offsetWidth!=null){
  return id.offsetWidth;
 }
 else if(id.style.pixelWidth!=null){
  return id.style.pixelWidth;
 }
 return 0;
}
//获取元素高度
function H$(id)
{
 id = $(id);
 if(id==null){
  return 0;
 }
 if(id.clip!=null){
  return id.clip.bottom-id.clip.top;
 }
 else if(id.scrollHeight!=null){
  return id.scrollHeight;
 }
 else if(id.offsetHeight!=null){
  return id.offsetHeight;
 }
 else if(id.style.pixelHeight!=null){
  return id.style.pixelHeight;
 }
 return 0;
}
//获取元素Y位置
function Y$(id)
{
 id = $(id);
 if (id == null)
 {
  return 0;
 }
 var e = id;
 var y = 0;
 while(e != null)
 {
  y += e.offsetTop;
  e = e.offsetParent;
 }
 return y;
}
//获取元素X位置
function X$(id)
{
 id = $(id);
 if (id == null)
 {
  return 0;
 }
 var e = id;
 var x = 0;
 while(e != null)
 {
  x += e.offsetLeft;
  e = e.offsetParent;
 }
 return x;
}
//使指定IFrame自适应高度
function M$()
{
 var frame = arguments[0];
 if (frame == null)
 {
  frame = window.frameElement;
 }
 else
 {
  frame = $(frame);
 }
 if (frame == null)
 {
  return;
 }
 try
 {
  if (frame instanceof Array)
  {
   for (var i = 0, maxI = frame.length; i < maxI; i++)
   {
    try
    {
     frame[i].width = document.body.scrollWidth;
     frame[i].height = document.body.scrollHeight;
    }
    catch(err)
    {
    }
   }
  }
  else
  {
   frame.width = document.body.scrollWidth;
   frame.height = document.body.scrollHeight;
  }
 }
 catch(err)
 {
 }
}
//设置或者获取指定元素值
function C$()
{
 var control = arguments[0];
 var controls = new Array();
 if (typeof(control) == "string")
 {
  control = $(control);
 }
 if (control == null)
 {
  return null;
 }
 if (control.constructor == Array)
 {
  controls = control;
 }
 else
 {
  controls.push(control);
 }
 switch(arguments.length)
 {
  case 0:
   return;
  case 1://获取值
   var val = "";
   for (var i = 0, maxI = controls.length; i < maxI; i++)
   {
    var item = controls[i];
    if (item.form != null && item.value != null && item.value != "")
    {
     if (item.checked == false)
     {
      continue;
     }
     if (val != "")
     {
      val += ", ";
     }
     val += item.value;
    }
   }
   return val;
   break;
  default:
   for (var i = 1, maxI = controls.length; i < maxI; i++)
   {
    var control = controls[i];
    if (control.form != null)
    {
     if (typeof(control.checked) != "undefined")
     {
      control.checked = false;
      for (var j = 1, maxJ = arguments.length; j < maxJ; j++)
      {
       var val = arguments[i];
       if (control.value == val)
       {
        control.checked = true;
        break;
       }
      }
     }
     else if (typeof(control.selectedIndex) != "undefined")
     {
      control.selectedIndex = 0;
      for (var j = 0, maxJ = control.options.length; j < maxJ; j++)
      {
       var option = control.options[i];
       if (option != null)
       {
        option.selected = false;
        for (var k = 1, maxK = arguments.length; k < maxK; k++)
        {
         var val = arguments[i];
         if (option.value == val)
         {
          option.selected = true;
          break;
         }
        }
        if (option.selected == true)
        {
         break;
        }
       }
      }
     }
     else
     {
      control.value = "";
      for (var j = 1, maxJ = arguments.length; j < maxJ; j++)
      {
       var val = arguments[i];
       if (val != null)
       {
        control.value = val;
        break;
       }
      }
     }
    }
   }
   break;
 }
}
//设置或者获取指定属性
function S$()
{
 var control = arguments[0];
 var prop = arguments[1];
 var controls = new Array();
 if (typeof(control) == "string")
 {
  control = $(control);
 }
 if (control == null || prop == null)
 {
  return null;
 }
 if (control.constructor == Array)
 {
  controls = control;
 }
 else
 {
  controls.push(control);
 }
 switch(arguments.length)
 {
  case 0:
  case 1:
   return;
  case 2://获取值
   var val = "";
   for (var i = 0, maxI = controls.length; i < maxI; i++)
   {
    var item = controls[i][prop];
    if (item != null)
    {
     if (val != "")
     {
      val += ", ";
     }
     val += item;
    }
   }
   return val;
   break;
  default:
   for (var i = 1, maxI = arguments.length; i + 1 < maxI; i+=2)
   {
    prop = arguments[i];
    var val = arguments[i + 1];
    for (var j = 0, maxJ = controls.length; j < maxJ; j++)
    {
     try
     {
      eval("controls[j]." + prop + " = val");
     }
     catch(err)
     {
     }
    }
   }
   break;
 }
}
//清除控件数据
function D$()
{
 var startIndex = null;
 var endIndex = null;
 var controls = new Array();
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  var control = arguments[i];
  if (control == null)
  {
   continue;
  }
  if (typeof(control) == "string")
  {
   control = $(control);
  }
  if (control.constructor == Array)
  {
   controls = control;
  }
  else if(control.tagName != null)
  {
   controls.push(control);
  }
  else if(typeof(control) == "number" || /[0-9]+/i.test(control + ""))
  {
   if (startIndex == null)
   {
    startIndex = parseInt(control + "");
   }
   else
   {
    endIndex = parseInt(control + "");
   }
  }
 }
 if (startIndex == null)
 {
  startIndex = 0;
 }
 if (endIndex == null)
 {
  endIndex = 0;
  for (var i = 0, maxI = controls.length; i < maxI; i++)
  {
   try
   {
    if (endIndex < controls[i].children.length)
    {
     endIndex = controls[i].children.length;
    }
   }
   catch(err)
   {
   }
  }
 }
 endIndex = parseInt(endIndex);
 for (var i = startIndex; i < endIndex; i++)
 {
  for (var j = 0, maxJ = controls.length; j < maxJ; j++)
  {
   control = controls[j];
   try
   {
    control.removeChild(control.children[startIndex]);
   }
   catch(err)
   {
   }
  }
 }
}
//将数据绑定到控件
function B$()
{
 if (arguments.length < 2)
 {
  return;
 }
 var ds = arguments[0];
 var control = arguments[1];
 var element = arguments[2];
 startIndex = 3;
 if (ds == null || control == null)
 {
  return;
 }
 if (typeof(control) == "string")
 {
  control = $(control);
 }
 if (control.constructor == Array)
 {
  control = control[0];
 }
 if (typeof(control.tagName) == "undefined" || typeof(control.appendChild) == "undefined")
 {
  return;
 }
 if (typeof(ds.length) == "undefined" || ds.length == null || isNaN(parseInt(ds.length)))
 {
  return;
 }
 try
 {
  if (element == null)
  {
   switch(control.tagName.toLowerCase())
   {
    case "select":
     element = "option";
     break;
    case "td":
     element = "span";
     break;
    case "tr":
     element = "td";
     break;
    case "table":
     element = "tr";
     break;
    case "p":
     element = "span";
     break;
    case "div":
     element = "div";
     break;
    default:
     element = control.tagName;
   }
  }
  if (element != null)
  {
   if (typeof(element) == "string" || typeof(element.tagName) == "undefined")
   {
    element = document.createElement(element + "");
   }
  }
  if (element == null)
  {
   return;
  }
 }
 catch(err)
 {
  return;
 }
 var src = new Array();
 var dst = new Array();
 var srcField = null;
 var dstField = null;
 for (var i = startIndex, maxI = arguments.length; i < maxI; i++)
 {
  var arg = arguments[i];
  if (typeof(element[arg]) != "undefined")
  {
   srcField = arg;
  }
  if (typeof(ds[0][arg]) != "undefined")
  {
   dstField = arg;
  }
  if (srcField != null && dstField != null)
  {
   src.push(srcField);
   dst.push(dstField);
   srcField = null;
   dstField = null;
  }
 }
 if (src.length == 0)
 {
  for(var dstProp in ds[0])
  {
   for (var srcProp in element)
   {
    if (dstProp.toLowerCase() == srcProp.toLowerCase())
    {
     src.push(srcProp);
     dst.push(dstProp);
    }
   }
  }
 }
 for (var i = 0, maxI = ds.length; i < maxI; i++)
 {
  var row = ds[i];
  if (row != null)
  {
   try
   {
    element = element.cloneNode(true);
    for(var j = 0, maxJ = src.length; j < maxJ; j++)
    {
     element[src[j]] = ds[i][dst[j]];
    }
    if (control.options)
    {
     try
     {
      control.options.add(element);
     }
     catch(err)
     {
      control.appendChild(element);
     }
    }
    else
    {
     control.appendChild(element);
    }
   }
   catch(err)
   {
    //window.alert(err.description);
   }
  }
 }
}
//聚焦指定元素
function O$()
{
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  var arg = arguments[i];
  if (arg != null)
  {
   if (typeof(arg) == "string" || typeof(arg) == "number")
   {
    arg = $(arg);
   }
   if (arg.constrauctor == Array)
   {
    for (var j = 0, maxJ = arg.length; j < maxJ; j++)
    {
     try
     {
      arg[j].focus();
     }
     catch(err)
     {
     }
    }
   }
   else
   {
    try
    {
     arg.focus();
    }
    catch(err)
    {
    }
   }
  }
 }
}
//尝试执行一系列方法 直到遇到第一个成功执行为止
function TT$()
{
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  var fun = arguments[i];
  if (fun != null)
  {
   try
   {
    if (typeof(fun) == "string")
    {
     var res = eval(fun);
     return res;
    }
    if (typeof(fun) == "function")
    {
     var res = fun();
     return res;
    }
   }
   catch(err)
   {
   }
  }
 }
}
//尝试执行一系列方法 每个方法都将被执行
function T$()
{
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  var fun = arguments[i];
  if (fun != null)
  {
   try
   {
    if (typeof(fun) == "string")
    {
     fun = eval(fun);
    }
    if (typeof(fun) == "function")
    {
     fun();
    }
   }
   catch(err)
   {
   }
  }
 }
}
//获取请求参数
function R$()
{
 var queryString = window.location + "";
 if (queryString.indexOf("?") == -1)
 {
  return "";
 }
 queryString = queryString.substring(queryString.indexOf("?") + 1, queryString.length);
 var blocks = queryString.split(/\&/gi);
 var param = "";
 for (var i = 0; i < blocks.length; i++)
 {
  var block = blocks[i];
  var name = block;
  var value = "";
  if (block.indexOf("=") > 0)
  {
   name = name.substring(0, name.indexOf("="));
   value = block.substring(block.indexOf("=") + 1, block.length);
  }
  else
  {
   continue;
  }
  name = name.toLowerCase();
  for (var j = 0; j < arguments.length; j++)
  {
   var compare = arguments[j] + "";
   compare = compare.toLowerCase();
   if (compare == name)
   {
    if (param != "")
    {
     param += ", ";
    }
    param += value;
    break;
   }
  }
 }
 return param;
}
//利用Post方法获取数据
function P$()
{
 if (arguments.length < 1)
 {
  return null;
 }
 var url = arguments[0];
 if (url == null)
 {
  url = "";
 }
 else
 {
  url += "";
 }
 var data = "";
 var name = null;
 for (var i = 1, maxI = arguments.length; i < maxI; i++)
 {
  var item = arguments[i];
  if (typeof(item) != "string")
  {
   for(var prop in item)
   {
    var propValue = item[prop];
    if (propValue != null)
    {
     if (propValue.constructor == Array)
     {
      for (var j = 0, maxJ = propValue.length; j < maxJ; j++)
      {
       if (data != "")
       {
        data += "&";
       }
       data += prop + "=" + escape(propValue[j]);
      }
     }
     else
     {
      if (data != "")
      {
       data += "&";
      }
      data += prop + "=" + escape(propValue);
     }
    }
   }
  }
  else
  {
   if (name == null)
   {
    name = item;
   }
   else
   {
    if (data != "")
    {
     data += "&";
    }
    data += name + "=" + escape(item);
    name = null;
   }
  }
 }
 var request;
 if (ActiveXObject)
 {
  request = new ActiveXObject("Msxml2.XMLHTTP");
 }
 else
 {
  request = new XMLHttpRequest();
 }
 request.open("POST", url, false);
 request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
 request.setRequestHeader("X-PoweredBy", "P$");
 request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 request.send(data);
 return request.responseText;
}
//利用Get方法获取数据
function G$()
{
 if (arguments.length < 1)
 {
  return null;
 }
 var url = arguments[0];
 if (url == null)
 {
  url = "";
 }
 else
 {
  url += "";
 }
 var data = "";
 var name = null;
 for (var i = 1, maxI = arguments.length; i < maxI; i++)
 {
  var item = arguments[i];
  if (typeof(item) != "string")
  {
   for(var prop in item)
   {
    var propValue = item[prop];
    if (propValue != null)
    {
     if (propValue.constructor == Array)
     {
      for (var j = 0, maxJ = propValue.length; j < maxJ; j++)
      {
       if (data != "")
       {
        data += "&";
       }
       data += prop + "=" + escape(propValue[j]);
      }
     }
     else
     {
      if (data != "")
      {
       data += "&";
      }
      data += prop + "=" + escape(propValue);
     }
    }
   }
  }
  else
  {
   if (name == null)
   {
    name = item;
   }
   else
   {
    if (data != "")
    {
     data += "&";
    }
    data += name + "=" + escape(item);
    name = null;
   }
  }
 }
 var request;
 if (ActiveXObject)
 {
  request = new ActiveXObject("Msxml2.XMLHTTP");
 }
 else
 {
  request = new XMLHttpRequest();
 }
 if (url.indexOf("?") >= 0)
 {
  url += "&" + data;
 }
 else
 {
  url += "?" + data;
 }
 request.open("GET", url, false);
 request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
 request.setRequestHeader("X-PoweredBy", "G$");
 request.send();
 return request.responseText;
}
//获取表单
function F$()
{
 var args = Array();
 var exp = "";
 var resF = new Array();
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  var arg = arguments[i];
  if (arg == null)
  {
   continue;
  }
  if (arg.constructor == Array)
  {
   for (var i = 0, maxI = arg.length; i < maxI; i++)
   {
    if (typeof(arg[i].form) != "undefined")
    {
     resF.push(arg[i]);
    }
   }
  }
  else
  {
   if (exp != "")
   {
    exp += ",";
   }
   exp += "args[" + i + "]";
   args[i] = arguments[i];
  }
 }
 var res = null;
 if (exp != "")
 {
  exp = "$(" + exp + ")";
  var res = eval(exp);
 }
 if (res == null)
 {
 }
 else if (res.constructor == Array)
 {
  for (var i = 0, maxI = res.length; i < maxI; i++)
  {
   if (typeof(res[i].form) != "undefined")
   {
    resF.push(res[i]);
   }
  }
 }
 else if (typeof(res.form) != "undefined")
 {
  resF.push(res);
 }
 if (resF.length > 1)
 {
  return resF;
 }
 else if (resF.length > 0)
 {
  return resF[0];
 }
 return null;
}
//获取指定元素
function $()
{
 var res = new Array();
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  var arg = arguments[i];
  var element;
  if (arg == null)
  {
   continue;
  }
  else if (typeof(arg.tagName) != "undefined")
  {
   element = new Array();
   element.push(arg);
  }
  else
  {
   element = document.getElementsByName(arg);
  }
  if (element.length == 0)
  {
   element = document.getElementById(arg);
   if (element == null)
   {
    element = document.all[arg];
   }
   if(arg == "Account")window.alert(arg);
   if(arg == "Account")window.alert(element);
   if (element != null)
   {
    if (res.I$(element) == -1)
    {
     res.push(element);
    }
   }
  }
  else
  {
   for (var j = 0, maxJ = element.length; j < maxJ; j++)
   {
    if (res.I$(element[j]) == -1)
    {
     res.push(element[j]);
    }
   }
  }
 }
 switch(res.length)
 {
  case 0:
   return null;
  case 1:
   return res[0];
  default:
   return res;
 }
}
//根据指定属性获取元素 但是不区分大小写
function NN$()
{
 var minLen = 2;
 var elements = null;
 if (arguments.length > 2 && arguments[0] != null)
 {
  elements = arguments[0];
  if (elements.constructor == Array)
  {
   minLen++;
  }
  else
  {
   elements = null;
  }
 }
 if (arguments.length < minLen)
 {
  return elements;
 }
 if (elements == null)
 {
  elements = document.all;
 }
 var resNN = new Array();
 var name = arguments[minLen - 2] + "";
 name = name.toLowerCase();
 for (var i = 0, maxI = elements.length; i < maxI; i++)
 {
  var prop = null;
  for (var propName in elements[i])
  {
   if (propName.toLowerCase() == name)
   {
    prop = propName;
    break;
   }
  }
  if (prop == null)
  {
   continue;
  }
  prop = elements[i][prop];
  prop += "";
  prop = prop.toLowerCase();
  for (var j = 1, maxJ = arguments.length; j < maxJ; j++)
  {
   var propCompare = arguments[j] + "";
   propCompare = propCompare.toLowerCase();
   if (prop == propCompare)
   {
    resNN.push(elements[i]);
    break;
   }
  }
 }
 return resNN;
}
//根据指定属性获取元素
function N$()
{
 var minLen = 2;
 var elements = null;
 if (arguments.length > 2 && arguments[0] != null)
 {
  elements = arguments[0];
  if (elements.constructor == Array)
  {
   minLen++;
  }
  else
  {
   elements = null;
  }
 }
 if (arguments.length < minLen)
 {
  return elements;
 }
 if (elements == null)
 {
  elements = document.all;
 }
 var resN = new Array();
 for (var i = 0, maxI = elements.length; i < maxI; i++)
 {
  var prop = elements[i][arguments[minLen - 2]];
  for (var j = 1, maxJ = arguments.length; j < maxJ; j++)
  {
   if (prop == arguments[j])
   {
    resN.push(elements[i]);
    break;
   }
  }
 }
 return resN;
}
function I$()
{
 if (arguments.length < 2)
 {
  return -1;
 }
 var array = arguments[0];
 if (array == null)
 {
  return -1;
 }
 if (typeof(array.length) != "undefined")
 {
  for (var i = 0, maxI = array.length; i < maxI; i++)
  {
   var item = array[i];
   for (var j = 1, maxJ = arguments.length; j < maxJ; j++)
   {
    if (arguments[j] == item)
    {
     return i;
    }
   }
  }
 }
 else
 {
  var index = 0;
  for (var prop in array)
  {
   var value = array[prop];
   for (var i = 1, maxI = arguments.length; i < maxI; i++)
   {
    if (arguments[i] == value)
    {
     return index;
    }
   }
   index++;
  }
 }
 return -1;
}
Array.prototype.I$=function()
{
 var exp = "I$(this";
 var args = new Array();
 for (var i = 0, maxI = arguments.length; i < maxI; i++)
 {
  args[i] = arguments[i];
  exp += ", args[" + i + "]";
 }
 exp += ")";
 var index = eval(exp);
 return index;
}
posted on 2008-02-23 11:06  傲雪凌峰  阅读(1656)  评论(0)    收藏  举报