JavaScript 应用类库代码

  /* $ 获取指定对象

  @element 对象名

  可以使用对象名集合,返回值为对象的集合

  如果您使用了 Prototype 类库, 请把该函数注释掉

  Sams_object.Get() 中同样实现该函数的所有功能

  */

  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);

  return element;

  }

  /// 浏览器相关操作

  var Sams_browse = {

  /* 检测浏览信息 */

  checkBrowser : function ()

  {

  this.ver=navigator.appVersion

  this.dom=document.getElementById?1:0

  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;

  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;

  this.ie4=(document.all && !this.dom)?1:0;

  this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;

  this.ns4=(document.layers && !this.dom)?1:0;

  this.mac=(this.ver.indexOf('Mac') > -1) ?1:0;

  this.ope=(navigator.userAgent.indexOf('Opera')>-1);

  this.ie=(this.ie6 || this.ie5 || this.ie4)

  this.ns=(this.ns4 || this.ns5)

  this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope)

  this.nbw=(!this.bw)

  return this;

  },

  /* 设为首页

  @url  要设为首页的地址

  */

  SetDefault : function ()

  {

  this.style.behavior='url(#default#homepage)';

  this.setHomePage(this.GetUrl());

  return false;

  },

  /* 复制指定URL地址

  @Msg  要写入剪贴板的字符集

  */

  SetCopy : function (Msg){

  if(navigator.userAgent.toLowerCase().indexOf('ie') > -1) {

  clipboardData.setData('Text',Msg);

  alert ("网址“"+Msg+"”\n已经复制到您的剪贴板中\n您可以使用Ctrl+V快捷键粘贴到需要的地方");

  }

  else

  {

  prompt("请复制网站地址:",Msg);

  }

  },

  /* 加入收藏

  @site  站点名称

  @url  地址

  */

  AddBookmark : function (site, url){

  if(navigator.userAgent.toLowerCase().indexOf('ie') > -1) {

  window.external.addFavorite(url,site)

  } else if (navigator.userAgent.toLowerCase().indexOf('opera') > -1) {

  alert ("请使用Ctrl+T将本页加入收藏夹");

  } else {

  alert ("请使用Ctrl+D将本页加入收藏夹");

  }

  },

  /* 打开Url指定宽度和高度的窗口 */

  OpenWindows : function (url,width,height)

  {

  window.open(url,'newwin','width='+width+',height='+height);

  return false;

  },

  /* 禁止浏览器的Javascript错误提示 */

  CloseError : function(){

  window.onerror = function(){return true;};

  },

  /* 获取浏览器URL */

  GetUrl : function(){

  return location.href;

  },

  /* 获取URL参数 */

  GetUrlParam : function(){

  return location.search;

  },

  /* 获取页面来源 */

  GetFrom : function(){

  return document.referrer;

  },

  /* 获取指定的URL参数值

  @name  参数名

  */

  Request : function(name){

  var GetUrl = this.GetUrl();

  var Plist = new Array();

  if(GetUrl.indexOf('?') > 0)

  {

  Plist = GetUrl.split('?')[1].split('&');

  }

  else if(GetUrl.indexOf('#') > 0)

  {

  Plist = GetUrl.split('#')[1].split('&');

  }

  if (GetUrl.length > 0)

  {

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

  {

  var GetValue = Plist[i].split('=');

  if (GetValue[0].toUpperCase() == name.toUpperCase())

  {

  return GetValue[1];

  break;

  }

  }

  return;

  }

  },

  /* 直接将HTML写到新窗口

  @title  标题

  @msg  内容

  */

  Popmsg : function PopIt(title,msg)

  {

  var popup = window.open('','popDialog','height=500,width=400,scrollbars=yes');

  popup.document.write('<html><title>'+title+'</title><style>body{margin:10px;font:13px Arial;}span{text-line:20px;}</style><body><span style=\'font:14px arial;\'>'+msg + '</span></body></html>');

  popup.document.close();

  }

  };

  /// 对象操作

  var Sams_object = {

  /* 创建一个DIV对象

  @ID   要创建的对象ID

  @ClassName 创建对象的Class

  @SetValue 设置该对象值

  @ToDiv  将对象追加到指定的对象,如指定的对象不存在,则追加在Body的后面

  返回  创建后的对象

  */

  CreateDiv : function (ID,ClassName,SetValue,ToDiv){

  var creatediv = document.createElement('div');

  if(ID != null) creatediv.id = ID;

  creatediv.style.position = 'absolute';

  if(ClassName != null) creatediv.className = ClassName;

  if(this.Get(ToDiv))

  {

  this.Get(ToDiv).appendChild(creatediv);

  }

  else

  {

  document.getElementsByTagName('body')[0].appendChild(creatediv);

  }

  this.SetValue(ID,SetValue);

  return this.Get(ID);

  },

  /* 删除指定DIV对象

  @objid  要删除的对象ID

  返回  Bool 操作结果

  */

  DeleteDiv : function (objid)

  {

  try

  {

  if(this.Get(objid))

  {

  var GetParent = this.Get(objid).parentNode;

  GetParent.removeChild(this.Get(objid));

  return true;

  }

  else

  {

  return false;

  }

  }

  catch(e)

  {

  return false;

  }

  },

  /* 获取浏览器对象

  @id  要获取的对象ID

  可以使用对象名集合,返回值为对象的集合

  */

  Get : function (objid) {

  if (arguments.length > 1) {

  for (var i = 0, objids = [], length = arguments.length; i < length; i++)

  objids.push(this.Get(arguments[i]));

  return objids;

  }

  if (typeof objid == 'string')

  {

  if (document.getElementById) {

  objid = document.getElementById(objid);

  } else if (document.all) {

  objid = document.all[objid];

  } else if (document.layers) {

  objid = document.layers[objid];

  }

  }

  return objid;

  },

  /* 获取对象的值

  @objid  对象ID

  */

  GetValue : function (objid) {

  if (typeof objid == 'string')

  {

  var getTagName = this.Get(objid).tagName.toLowerCase();

  if (getTagName == 'input' || getTagName == 'textarea' || getTagName == 'select')

  {

  return this.Get(objid).value;

  }

  else if (getTagName == 'div' || getTagName == 'span')

  {

  return this.Get(objid).innerText;

  }

  }

  else if (typeof objid == 'object')

  {

  return objid.value;

  }

  },

  /* 设置指定对象的值,实现可以直接赋值或清除操作

  @objid  对象ID

  @inserValue 传入值(可选项 Null:清除该ID的值, 则直接赋值)

  */

  SetValue: function(objid,inserValue) {

  var getTagName = this.Get(objid).tagName.toLowerCase();

  if (inserValue == null) inserValue = '';

  if (getTagName == 'input' || getTagName == 'textarea')

  {

  this.Get(objid).value = inserValue;

  }

  else if (getTagName == 'div' || getTagName == 'sapn')

  {

  this.Get(objid).innerText = inserValue;

  }

  },

  /* 拷贝对象值到剪贴板

  @str  对象值

  */

  CopyCode : function (str) {

  var rng = document.body.createTextRange();

  rng.moveToElementText(str);

  rng.scrollIntoView();

  rng.select();

  rng.execCommand("Copy");

  rng.collapse(false);

  },

  /* 显示隐藏一个对象

  @Objid  对象ID

  @isshow  具体操作,指定Obj为False : none或者True : block (可选)

  */

  ShowHidd : function(objid,isshow){

  if (isshow != null)

  {

  if(isshow)

  {

  this.Get(objid).style.display = 'block';

  }

  else

  {

  this.Get(objid).style.display = 'none';

  }

  }

  else

  {

  if(this.Get(objid).style.display == 'none')

  {

  this.Get(objid).style.display = 'block';

  }

  else

  {

  this.Get(objid).style.display = 'none';

  }

  }

  },

  /* 当前对象是否可见

  @objid  对象ID

  */

  IsVisible : function(objid){

  if(this.Get(objid))

  {

  try

  {

  if (this.Get(objid).style.display == 'none')

  {

  return false

  }

  if(this.Get(objid).style.visibility == 'hidden')

  {

  return false;

  }

  return true;

  }

  catch(e)

  {

  return false;

  }

  }

  else

  {

  return false;

  }

  }

  };

  /// 字符处理

  var Sams_string = {

  /* 取左边的指定长度的值

  @str  要处理的字符集

  @n   长度

  */

  Left : function (str,n)

  {

  if(str.length > 0)

  {

  if(n>str.length) n = str.length;

  return str.substr(0,n)

  }

  else

  {

  return;

  }

  },

  /* 取右边的指定长度的值

  @str  要处理的字符集

  @n   长度

  */

  Right : function (str,n)

  {

  if(str.length > 0)

  {

  if(n>=str.length) return str;

  return str.substr(str.length-n,n);

  }

  else

  {

  return;

  }

  },

  /* Trim:清除两边空格

  @str  要处理的字符集

  */

  Trim : function (str)

  {

  if (typeof str == 'string') return str.replace(/(^\s*)|(\s*$)/g, '');

  },

  /* LTrim:清除左边的空格

  @str  要处理的字符集

  */

  Ltrim : function (str)

  {

  if (typeof str == 'string') return str.replace(/(^\s*)/g, '');

  },

  /* RTrim: 清除右边的空格

  @str  要处理的字符集

  */

  Rtrim : function (str)

  {

  if (typeof str == 'string') return str.replace(/(\s*$)/g, '');

  },

  /* 清除前后的非字符

  @str  要处理的字符集

  */

  strip : function(str) {

  if (typeof str == 'string') return str.replace(/^\s+/, '').replace(/(^\s*)|(\s*$)/g, '');

  },

  /* 过滤字符里面的HTML标签

  @str  要处理的字符集

  */

  stripTags : function(str) {

  if (typeof str == 'string')return str.replace(/<\/?[^>]+>/gi, '').replace(/(^\s*)|(\s*$)/g, '');

  }

  };

  /// 时间相关操作

  var Sams_time = {

  /* 获取当天日期 yyyy-MM-dd */

  GetDateNow : function (){

  var d,y,m,dd;

  d = new Date();

  y = d.getYear();

  m = d.getMonth() + 1;

  dd = d.getDate();

  return y+"-"+m+"-"+dd;

  },

  /* 获取指定日期后的特定天数的日期值

  @toDate  当前指定的日期

  @N   要添加的日期数

  */

  AddDays : function(toDate,N){

  var aDate=this._cvtISOToDate(toDate);

  if (!aDate) return "";

  var millis=86400000 * N;

  aDate=new Date(aDate.getTime()+millis);

  return this._fmtDateISO(aDate);

  },

  _fmtDateISO : function (aDate) {

  with (aDate) {

  var mm=getMonth()+1;

  if (mm<10) {mm='0'+mm;}

  var dd=getDate();

  if (dd<10) {dd='0'+dd;}

  return (getFullYear() + '-' + mm + '-' + dd);

  }

  },

  _cvtISOToDate : function (isoDate) {

  var atomDate= isoDate.split('-');

  var aDate=new Date(parseInt(atomDate[0],10),parseInt(atomDate[1],10)-1,parseInt(atomDate[2],10),6,0,0);

  return aDate;

  }

  };

  /// 图像相关操作

  var Sams_media = {

  /* 为单一图像添加鼠标中键放大缩小功能, 批量可以直接用 ResizeImage(指定添加该功能的图片大小:Int) 即可 (该功能只适用于IE)

  objid  对象ID

  */

  ZoomFun : function(objid){

  Sams_object.Get(objid).onmousewheel = function(){return Sams_media.imagecontrol(this);}

  },

  /* 重置图片尺寸同时添加放大功能 (该功能只适用于IE)

  @IntSize 指定图像的大小

  如果适合图像大小就添加放大缩小功能

  */

  ResizeImage: function (IntSize) {

  var imgsinlog=document.getElementsByTagName('img');

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

  if (imgsinlog[j].width >= IntSize) {

  imgsinlog[j].width = IntSize;

  imgsinlog[j].style.cursor= 'pointer';

  imgsinlog[j].onclick = function() {window.open(this.src);}

  if (navigator.userAgent.toLowerCase().indexOf('ie') > -1) {

  imgsinlog[j].title = '您可以用鼠标中键或者使用Ctrl+鼠标滚轮缩放图片,点击图片可在新窗口打开';

  imgsinlog[j].onmousewheel = function(){return Sams_media.imagecontrol(this);};

  }

  else

  {

  imgsinlog[j].title = '点击图片可在新窗口打开';

  }

  }

  }

  },

  imagecontrol : function(obj){

  var zoom=parseInt(obj.style.zoom, 10)||100;zoom+=event.wheelDelta/12;

  if (zoom>0) obj.style.zoom=zoom+'%';

  return false;

  },

  /* 如果图像出现下载不了等异常,显示的错误提示图片

  @errimgpath 显示错误提示的图像路径

  */

  ImagesError : function(errimgpath){

  var imglist = document.getElementsByTagName('img');

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

  imglist[j].onerror = function(){

  this.src = errimgpath;

  }

  }

  },

  /* 显示媒体

  @mFile  文件路径

  @mFileType 文件类型(可为空,如为Flash,要指定为swf类型)

  @ObjID  对象ID

  @mWidth  显示的对象宽度

  @mHeight 显示对象的高度

  注: 可以指定对象的ID, 如果ID不存在,会自动创建,追加在Body后面

  */

  ShowMedia : function (mFile, mFileType, ObjID, mWidth, mHeight) {

  var mediaStr;

  switch(mFileType){

  case "swf":

  mediaStr="<object codeBase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='"+mWidth+"' height='"+mHeight+"'><param name='movie' value='"+mFile+"'><param name='quality' value='high'><param name='AllowScriptAccess' value='never'><embed src='"+mFile+"' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='"+mWidth+"' height='"+mHeight+"'></embed></OBJECT>";

  break;

  default :

  mediaStr="<object width='"+mWidth+"' height='"+mHeight+"' classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'><param name='url' value='"+mFile+"' /><embed width='"+mWidth+"' height='"+mHeight+"' type='application/x-mplayer2' src='"+mFile+"'></embed></object>";

  }

  var mediaDiv = Sams_object.Get(ObjID);

  if (mediaDiv) {

  mediaDiv.innerHTML = mediaStr;

  }

  else

  {

  mediaDiv = document.createElement("div");

  mediaDiv.id = ObjID;

  mediaDiv.innerHTML = mediaStr;

  document.getElementsByTagName('body')[0].appendChild(mediaDiv);

  }

  return false;

  }

  };

  /// 样式相关操作

  var Sams_style = {

  /* 改变字体大小

  @objid  对象ID

  @size  字号

  */

  doZoom : function (objid,size){

  Sams_object.Get(objid).style.fontSize=size+'px';

  },

  /* 改变指定对象样式

  @objid  对象ID

  @className 要更改的ClassName

  */

  ClassName: function(objid, className) {

  Sams_object.Get(objid).className = className;

  },

  /* 对象定位

  @obj  要定位的对象

  返回  X.Y 结果的数组对象

  */

  GotoXY : function (obj) {

  var t=obj.offsetTop;

  var l=obj.offsetLeft;

  while(obj=obj.offsetParent){

  t+=obj.offsetTop;

  l+=obj.offsetLeft;

  }

  return Array(t,l);

  }

  };

  /// 科学计算

  var Sams_account = {

  /* 逢1进10计算

  @ 数值

  */

  GetTen: function (i)

  {

  var items_One,Get_One;

  if (i.length > 1&& (/^\d+$/.test(i)))

  {

  items_One = i.substr(0,i.length-1);

  Get_One = i.substr(i.length-1,1);

  if (parseInt(Get_One)>0)

  {

  items_One = parseInt(items_One)+1;

  items_One = items_One + '0';

  }

  else

  {

  items_One = items_One + '0';

  }

  }

  else

  {

  items_One = i;

  }

  return items_One;

  }

  };

  /// 数据验证(所有数值返回值均为Bool型)

  var Sams_validate = {

  /* 是否是数字型数据

  @str  字符集

  */

  IsNumber : function(str){

  if (/^\d+$/.test(str)){return true;}else{return false;}

  },

  /* 是否是数字型数据

  @objid  对象ID

  */

  IsNumberObj : function(objid){

  return this.IsNumber(Sams_object.GetValue(objid));

  },

  /* 是否是自然数型数据

  @str  字符集

  */

  IsInt : function(str){

  if (/^(\+|-)?\d+$/.test(str)){return true;}else{return false;}

  },

  /* 是否是自然数型数据

  @objid  对象ID

  */

  IsIntObj : function(objid){

  return this.IsInt(Sams_object.GetValue(objid));

  },

  /* 是否是中文字符

  @str  字符集

  */

  IsChinese : function(str)

  {

  if (/^[\u4e00-\u9fa5]+$/.test(str)){return true;}else{return false;}

  },

  /* 是否是中文字符

  @objid  对象ID

  */

  IsChineseObj : function(objid)

  {

  return this.IsChinese(Sams_object.GetValue(objid));

  },

  /* 是否为英文字母

  @str  字符集

  */

  IsLower : function(str)

  {

  if (/^[A-Za-z]+$/.test(str)){return true}else{return false;}

  },

  /* 是否为英文字母

  @objid  对象ID

  */

  IsLowerObj : function(objid)

  {

  return this.IsLower(Sams_object.GetValue(objid));

  },

  /* 是否为正确的网址

  @str  字符集

  */

  IsUrl : function(str)

  {

  var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;

  if(myReg.test(str)){return true;}else{return false;}

  },

  /* 是否为正确的网址

  @objid  对象ID

  */

  IsUrlObj : function(objid)

  {

  return this.IsUrl(Sams_object.GetValue(objid));

  },

  /* 是否为正确的Email形式

  @str  字符集

  */

  IsEmail : function(str)

  {

  var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;

  if(myReg.test(str)){return true;}else{return false;}

  },

  /* 是否为正确的Email形式

  @objid  对象ID

  */

  IsEmailObj : function(objid)

  {

  return this.IsEmail(Sams_object.GetValue(objid));

  },

  /* 是否为正确的手机号码

  @str  字符集

  */

  IsMobile : function(str)

  {

  var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;

  var re = new RegExp(regu);

  if (re.test(str)){return true;}else{return false;}

  },

  /* 是否为正确的手机号码

  @objid  对象ID

  */

  IsMobileObj : function(objid)

  {

  return this.IsMobile(Sams_object.GetValue(objid));

  }

  };

  /*

  实现Ajax功能

  Sams_ajax.SendRequest('GET', url, null, recall, "addtohome");

  Sams_ajax.SendRequest('GET', url, null, null);

  obj.responseText;

  */

  var Sams_ajax = {

  _objPool: [],

  _getInstance: function (){

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

  if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4){

  return this._objPool[i];

  }

  }

  this._objPool[this._objPool.length] = this._createObj();

  return this._objPool[this._objPool.length - 1];

  },

  _createObj : function (){

  if (window.XMLHttpRequest){

  var objXMLHttp = new XMLHttpRequest();

  }

  else{

  var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];

  for(var n = 0; n < MSXML.length; n ++){

  try{

  var objXMLHttp = new ActiveXObject(MSXML[n]);

  break;

  }

  catch(e){

  }

  }

  }

  if (objXMLHttp.readyState == null){

  objXMLHttp.readyState = 0;

  objXMLHttp.addEventListener("load", function (){

  objXMLHttp.readyState = 4;

  if (typeof objXMLHttp.onreadystatechange == "function"){

  objXMLHttp.onreadystatechange();

  }

  },  false);

  }

  return objXMLHttp;

  },

  /// 开始发送请求

  SendRequest : function (method, url, data, callback,funparam,funparam2){

  var objXMLHttp = this._getInstance();

  with(objXMLHttp){

  try{

  if (url.indexOf("?") > 0){

  url += "&randnum=" + Math.random();

  }

  else{

  url += "?randnum=" + Math.random();

  }

  open(method, url, true);

  setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');

  send(data);

  onreadystatechange = function (){

  if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))

  {

  callback(objXMLHttp,funparam,funparam2);

  }else{

  callback(null,funparam,funparam2);

  }

  }

  }

  catch(e){

  alert(e);

  }

  }

  }

  };

  /// Cookies操作

  var Sams_cookies = {

  /* cookies设置函数

  @name  Cookies名称

  @value  值

  */

  setCookie : function (name, value)

  {

  try

  {

  var argv = setCookie.arguments;

  var argc = setCookie.arguments.length;

  var expires = (argc > 2) ? argv[2] : null;

  if(expires!=null)

  {

  var LargeExpDate = new Date ();

  LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));

  }

  document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));

  return true;

  }

  catch(e)

  {

  return false;

  }

  },

  /* cookies读取函数

  @Name  Cookies名称

  返回值  Cookies值

  */

  getCookie : function (Name)

  {

  var search = Name + "="

  if(document.cookie.length > 0)

  {

  offset = document.cookie.indexOf(search)

  if(offset != -1)

  {

  offset += search.length

  end = document.cookie.indexOf(";", offset)

  if(end == -1) end = document.cookie.length

  return unescape(document.cookie.substring(offset, end))

  }

  else

  {

  return;

  }

  }

  }

  };