|
/* $ 獲取指定對象
@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;
}
}
}
};
JavaScript技術:JavaScript 應用類庫代碼,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。