AppBaseJs 类库 网上常用的javascript函数及其他js类库写的_js面向对象
/*-----------------------------------
Web Application JavaScript Library
2009.11 janchie
------------------------------------*/
//String原生对象扩展 置空左右端空格
String.prototype.trim = function(){
return this.replace(/(^[\s\n\t\r]*)|([\s\n\r\t]*$)/g, "");
};
//Date原生对象扩展 格式化输出
Date.prototype.format = function (string) {
var self = this;
var p = function p(s) {
return (s.toString().length == 1) ? "0" + s : s;
};
return string ? string.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,
function (string) {
switch (string) {
case "hh": return p(self.getHours() case "h": return self.getHours() case "HH": return p(self.getHours());
case "H": return self.getHours();
case "mm": return p(self.getMinutes());
case "m": return self.getMinutes();
case "ss": return p(self.getSeconds());
case "s": return self.getSeconds();
case "yyyy": return self.getFullYear();
case "yy": return self.getFullYear().toString().substring(2, 4);
case "dddd": return self.getDayName();
case "ddd": return self.getDayName(true);
case "dd": return p(self.getDate());
case "d": return self.getDate().toString();
case "MMMM": return self.getMonthName();
case "MMM": return self.getMonthName(true);
case "MM": return p((self.getMonth() + 1));
case "M": return self.getMonth() + 1;
case "t": return self.getHours() case "tt": return self.getHours() case "zzz":
case "zz":
case "z": return "";
}
}) : this.toString();
};
/*------------------------------------*/
//声明对象
var App = {};
//对象继承或属性合并
App.extend = function(obj, hash) {
this.each(hash, function(key, value) {
obj[key] = value;
});
return obj;
};
//遍历
App.each = function(obj, func, context) {
var length = obj.length, i = -1;
if(length !== undefined) {
while(++i }
else for(var key in obj) if(obj.hasOwnProperty(key)) if(func.call(context, key, obj[key], obj) === false) break;
return obj;
};
(function(doc, win){
var string = Object.prototype.toString,
quirks = doc.compatMode === "BackCompat",
docelem = doc.documentElement,
ua = win.navigator.userAgent.toLowerCase(),
version = (ua.match( /.(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
isChrome = /chrome/.test(ua),
isWebKit = /webkit/.test(ua),
isSafari = !isChrome && isWebKit,
isOpera = /opera/.test(ua),
isIE = /msie/.test( ua ) && !isOpera,
isFF = /firefox/.test(ua);
//Dom加载
doc.ready = function(func) {
var isReady = false,doReady = function() {
if (isReady) return;
isReady = true; func();
};
if (isIE) {
if (docelem.doScroll && win.self == win.top) {
(function() {
if (isReady) return;
try {
docelem.doScroll("left");
} catch (error) {
setTimeout(arguments.callee, 0);
return;
}
doReady();
})();
}else {
if (isReady) return;
this.attachEvent("onreadystatechange", function() {
if (doc.readyState === "complete") {
doc.detachEvent("onreadystatechange", arguments.callee);
doReady();
}
});
}
win.attachEvent('onload', doReady);
}else if (isWebKit && version (function() {
if (isReady) return;
if (/loaded|complete/.test(doc.readyState))
doReady();
else
setTimeout(arguments.callee, 0);
})();
win.addEventListener('load', doReady, false);
}else {
if (!isFF)
this.addEventListener("DOMContentLoaded", function() {
doc.removeEventListener("DOMContentLoaded", arguments.callee, false);
doReady();
}, false);
this.addEventListener('load', doReady, false);
}
};
App.extend(App,{
//类型检测
isArray: function(v) { //是否为数组
return string.apply(v) === "[object Array]";
},
isFunction: function(v) { //是否为函数体
return string.apply(v) === "[object Function]";
},
isNumber: function(v) { //是否为数字
return typeof v === "number" && isFinite(v);
},
isDate: function(v) { //是否为日期
return string.apply(v) === "[object Date]";
},
isElement: function(v) { //是否为Dom元素节点
return !!(v && v.nodeType === 1);
},
// 浏览器检测
isOpera: isOpera,
isChrome: isChrome,
isWebKit: isWebKit,
isSafari: isSafari,
isIE: isIE,
isFF: isFF,
isQuirks:quirks,
getVersion:version,
//取id元素
$: function(id) {
return typeof id === "string" ? doc.getElementById(id) : id;
},
//取name元素集合
$N:function(name){
return doc.getElementsByName(name);
},
//取tag元素集合
$T:function(tag, root){
return (root || doc).getElementsByTagName(tag);
},
//按属性名(是否包含)、值、范围取元素集合
$A:function(attrName, attrValue, tag, root){
var elems = doc.all ? doc.all : this.$T( tag || "*",root || doc), result = [],
attVal = (typeof attrValue != "undefined")? new RegExp("(^|\\s)" + attrValue + "(\\s|$)") : null;
for(var i=0; i
if(typeof attr === "string" && attr.length > 0){
if(typeof attrValue === "undefined" || (attVal && attVal.test(attr))){
result.push(elems[i]);
}
}
}
return result;
},
//取body元素
$B: doc.body || docelem,
//取Class属性元素集合
$C:function(attrValue, tag, root){
return this.$A("className",attrValue, tag, root);
},
//取浏览器窗体宽度
getWinWidth: win.innerWidth || docelem.clientWidth || doc.body.clientWidth,
//取浏览器窗体高度
getWinHeight: win.innerHeight || docelem.clientHeight || doc.body.clientHeight,
//取元素样式
getStyle: function(elem,name){
if(elem.style[name]){
return elem.style[name];
}else if(elem.currentStyle){
return elem.currentStyle[name];
}else if(doc.defaultView && doc.defaultView.getComputedStyle){
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
var s = doc.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
}else{
return null;
}
},
//获取元素屏幕坐标值
getPosition: function() {
return docelem.getBoundingClientRect && function(o){
var pos = o.getBoundingClientRect(), root = o.ownerDocument || o.doc;
return {left:pos.left+root.documentElement.scrollLeft,top:pos.top+root.documentElement.scrollTop};
} || function(o){
var x = 0, y = 0;
do{x += o.offsetLeft;y += o.offsetTop;}while((o=o.offsetParent));
return {left:x,top:y};
};
}(),
//设置透明度
setOpacity: function (elem,num){
if(elem.filters){
elem.style.filter = "alpha(opacity="+num+")";
}else{
elem.style.opacity = num/100;
}
},
//隐藏或显示元素
hide: function(elem){elem.style.display = "none";},
show: function(elem){elem.style.display = "block";},
toggle: function(elem){
elem.style.display = this.getStyle(elem,"display") === "none" ?"block":"none";
},
//元素Class属性操作
addClass: function(elem, clsName) {
if (elem.className === '') {
elem.className = clsName;
}else if (elem.className !== '' && (' ' + elem.className + ' ').indexOf(' ' + clsName + ' ') === -1) {
elem.className = elem.className + ' ' + clsName;
}
},
removeClass: function(elem, clsName) {
if (clsName && (' ' + elem.className + ' ').indexOf(' ' + clsName + ' ') > -1) {
elem.className = (' ' + elem.className + ' ').replace(' ' + clsName + ' ', ' ').replace(/^ | $/g,'');
}
},
//追加Html文本对象( 支持Table )
append: function(elem, text) {
if (typeof text === "string") {
if (elem.insertAdjacentHTML){
if (elem.tagName === "TABLE"){
var html = elem.outerHTML,ep = elem.parentNode,sl = html.length;
text = html.substr(0,sl-8) + text + html.substr(sl-8,sl);
ep.insertAdjacentHTML("beforeEnd", text);
ep.replaceChild(ep.lastChild,elem);
}else{
elem.insertAdjacentHTML("beforeEnd", text);
}
}else {
var rlt = null, rg = doc.createRange(), fm = rg.createContextualFragment(text);
rlt ? elem.insertBefore(fm, rlt) : elem.appendChild(fm);
}
}else if (typeof text === "object") elem.appendChild(text);
},
//删除元素
remove:function(elem){
if (elem.parentNode) elem.parentNode.removeChild(elem);
},
//置空元素内容及子节点
empty:function(elem){
while(elem.firstChild){
elem.removeChild(elem.firstChild);
}
},
//图像预加载
loadimages: function(){
var a = arguments,loads = function(){
if(doc.images){ if(!doc.ps) doc.ps = [];
var i,j=doc.ps.length; for(i=0; i
};
arguments.callee.caller ? loads():doc.ready(loads);
},
//事件绑定
bind: function () {
if (win.addEventListener) {
return function(elem, sType, fnc) {
elem.addEventListener(sType, fnc, false);
};
} else if (win.attachEvent) {
return function(elem, sType, fnc) {
elem.attachEvent("on" + sType, fnc);
};
} else {
return function(){};
}
}(),
//解除事件绑定
unbind: function(elem, sType, fnc){
if(elem.removeEventListener){
elem.removeEventListener(sType, fnc, false);
}else if(elem.detachEvent){
elem.detachEvent("on" + sType, fnc);
}else{
elem["on"+ sType] = null;
}
},
//禁止事件冒泡
stopPropagation: function(ev) {
if (ev.stopPropagation) {
ev.stopPropagation();
} else {
ev.cancelBubble = true;
}
},
//禁止默认事件动作
preventDefault: function(ev) {
if (ev.preventDefault) {
ev.preventDefault();
} else {
ev.returnValue = false;
}
},
//获取鼠标位置
getXY: function(ev){
return {
x:ev.pageX ? ev.pageX : ev.clientX + docelem.scrollLeft,
y:ev.pageY ? ev.pageY : ev.clientY + docelem.scrollTop
};
},
//绑定拖动事件
drag: function (obj, obj2){//obj:移动的对象 obj2:拖动点
obj2 = obj2 || obj; //如果不设拖动点,那么拖动点即移动的对象
var x, y, ut = this;
obj2.onmousedown = function(e){
e = e || win.event;
ut.preventDefault(e);
obj.setCapture && obj.setCapture();
x = ut.getXY(e).x - parseInt(obj.style.left);
y = ut.getXY(e).y - parseInt(obj.style.top);
docelem.onmousemove = over;
docelem.onmouseup = up;
}
function over(e){
e = e || win.event;
obj.style.left = ut.getXY(e).x - x + "px";
obj.style.top = ut.getXY(e).y - y + "px";
}
function up(){
obj.releaseCapture && obj.releaseCapture();
docelem.onmousemove = null;
docelem.onmouseup = null;
}
},
//绑定横向滚动事件
sliderX : function (obj,x1,x2,overEvent,upEvent){
var x, t , ut = this;
obj.onmousedown = function (e){
e = e || win.event;
ut.preventDefault(e);
obj.setCapture && obj.setCapture();
t = ut.getXY(e).x - parseInt(obj.style.left);
docelem.onmousemove = over;
docelem.onmouseup = up;
}
function over(e){
e = e || win.event;
x = ut.getXY(e).x - t;
if(x
obj.style.left = x + "px";
overEvent && overEvent(x);
}
function up(){
obj.releaseCapture && obj.releaseCapture();
docelem.onmousemove = null;
docelem.onmouseup = null;
upEvent && upEvent(x);
}
},
//绑定竖向滚动事件
sliderY : function (obj,y1,y2,overEvent,upEvent){
var y, t , ut = this;
obj.onmousedown = function (e){
e = e || win.event;
ut.preventDefault(e);
obj.setCapture && obj.setCapture();
t = ut.getXY(e).y - parseInt(obj.style.top);
docelem.onmousemove = over;
docelem.onmouseup = up;
}
function over(e){
e = e || win.event;
y = ut.getXY(e).y - t;
if(y
obj.style.top = y + "px";
overEvent && overEvent(y);
}
function up(){
obj.releaseCapture && obj.releaseCapture();
docelem.onmousemove = null;
docelem.onmouseup = null;
upEvent && upEvent(y);
}
},
//设置cookie
setCookie:function(n, v, t){
var exp = new Date();
exp.setTime(exp.getTime() + (t||24)*60*60*1000);
doc.cookie = n + "="+ escape(v) + ";expires=" + exp.toGMTString()+';path=/';
},
//获取cookie
getCookie:function(n){
var arr = doc.cookie.match(new RegExp("(^| )"+ n +"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]);
return null;
}
});
})(document,window);
//日期字符串格转日期
App.parseDate = function(date){
var dt = date instanceof Date ? date: Date(date.replace("-","/"));
return isNaN(dt.getTime()) ? null : dt ;
};
//Json字符串转对象
App.parseJSON = function(jsonString) {
var result = false;
try {
result = eval('(' + jsonString + ')');
}catch (e) {};
return result;
};
//取不重复唯一值
App.getUid = function(){
return "uid"+(new Date()).getTime()+ parseInt(Math.random()*100000);
};
//获取指定范围的随机数
App.random = function (n1, n2){
return Math.floor(Math.random()*(n2-n1+1)) + n1;
};
//秒转换为毫秒
App.s2ms = function (str){
var t = str.split(":");
return t[0] * 60000 + t[1] * 1000;
};
//毫秒转换为秒
App.ms2s = function (ms){
return (ms/60000+":"+ms/1000%60).replace(/\.\d+/g,"").replace(/(^|:)(\d)(?!\d)/g,"$10$2");
};
//数字转换为编号
App.num2number = function (num, n){
return Array(n).join("0").concat(num).slice(-n);
};
//数字转化为中文
App.num2gb = function (n){
return "零一二三四五六七八九".split("")[n];
};
//Flash生成代码
App.getFlash = function (url, width, height, param){
var tagName = "", o1 = {width:width||1, height:height||1}, o2 = {};
if (this.isIE){
tagName = "object ";
o1.classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
o1.codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0";
o2.movie = url;
o2.quality = "high";
param && this.extend(o2, param);
}else{
tagName = "embed ";
o1.type = "application/x-shockwave-flash";
o1.pluginspage = "http://www.adobe.com/go/getflashplayer_cn";
o1.src = url;
o1.quality = "high";
param && this.extend(o1, param);
}
if(o1.widthvar a1=[], a2=[], i;
for(i in o1) a1.push(i+'="'+o1[i]+'"');
for(i in o2) a2.push('');
return ''+a2.join('')+''+tagName+'>';
};
//播放器生成代码
App.getPlayer = function (url, width, height, param){
var wmp = ["6bf52a52-394a-11d3-b153-00c04f79faa6","application/x-mplayer2"];
var rmp = ["CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA","audio/x-pn-realaudio-plugin"];
var mp = /\.rm$/.test(url) ? rmp : wmp;
var tagName = "", o1 = {width:width||1, height:height||1}, o2 = {};
if (this.isIE){
tagName = "object ";
o1.classid = "clsid:"+mp[0];
o2.url = url;
param && this.extend(o2, param);
}else{
tagName = "embed ";
o1.type = mp[1];
o1.src = url;
param && this.extend(o1, param);
}
if(o1.widthvar a1=[], a2=[], i;
for(i in o1) a1.push(i+'="'+o1[i]+'"');
for(i in o2) a2.push('');
return ''+a2.join('')+''+tagName+'>';
};
//获取XMLHttp对象
App.xmlhttp = function (){
if (this.isFF) return new XMLHttpRequest();
var a = ["Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.5.0"];
for (var i=0,l=a.length;i
return new ActiveXObject(a[i]);
}catch(e){}
}
return false;
};
//Get数据
App.get = function (url,callBack){
var x = this.xmlhttp();
x.open("get",url,true);
x.onreadystatechange = function(){
x.readyState==4 && (x.status==0||x.status==200) && callBack(x.responseText);
}
x.send(null);
};
//Post数据
App.post = function (url,arg,callBack){
var x = this.xmlhttp();
x.open("post",url,true);
x.setRequestHeader("Content-Length",arg.length);
x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
x.onreadystatechange = function(){
x.readyState==4 && (x.status==0||x.status==200) && callBack(x.responseText);
}
x.send(arg);
};
有少量函数未经测试,欢迎大家提个意见

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Fungsi JavaScript Pengaturcaraan Asynchronous: Kemahiran Penting untuk Mengendalikan Tugasan Kompleks Pengenalan: Dalam pembangunan front-end moden, pengendalian tugas yang kompleks telah menjadi bahagian yang amat diperlukan. Kemahiran pengaturcaraan tak segerak fungsi JavaScript adalah kunci untuk menyelesaikan tugas yang kompleks ini. Artikel ini akan memperkenalkan konsep asas dan kaedah praktikal biasa bagi pengaturcaraan tak segerak fungsi JavaScript, dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan teknik ini dengan lebih baik. 1. Konsep asas pengaturcaraan tak segerak Dalam pengaturcaraan segerak tradisional, kodnya ialah

Dalam aplikasi web moden, melaksanakan navigasi dan penghalaan halaman web adalah bahagian yang sangat penting. Menggunakan fungsi JavaScript untuk melaksanakan fungsi ini boleh menjadikan aplikasi web kami lebih fleksibel, berskala dan mesra pengguna. Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript untuk melaksanakan navigasi dan penghalaan halaman web serta memberikan contoh kod khusus. Melaksanakan navigasi halaman web Untuk aplikasi web, navigasi halaman web adalah bahagian yang paling kerap dikendalikan oleh pengguna. Apabila pengguna mengklik pada halaman

Kemas kini masa nyata visualisasi data menggunakan fungsi JavaScript Dengan perkembangan sains data dan kecerdasan buatan, visualisasi data telah menjadi alat analisis dan paparan data yang penting. Dengan memvisualisasikan data, kami dapat memahami perhubungan dan arah aliran antara data dengan lebih intuitif. Dalam pembangunan web, JavaScript ialah bahasa skrip yang biasa digunakan dengan pemprosesan data yang berkuasa dan fungsi interaksi dinamik. Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript untuk mencapai kemas kini masa nyata visualisasi data dan menunjukkan yang khusus

Menggunakan fungsi JavaScript untuk melaksanakan log masuk pengguna dan pengesahan kebenaran Dengan perkembangan Internet, log masuk pengguna dan pengesahan kebenaran telah menjadi fungsi penting untuk banyak laman web dan aplikasi. Untuk melindungi keselamatan data dan hak akses pengguna, kami perlu menggunakan beberapa teknologi dan kaedah untuk mengesahkan identiti pengguna dan menyekat hak akses mereka. JavaScript, sebagai bahasa skrip yang digunakan secara meluas, memainkan peranan penting dalam pembangunan bahagian hadapan. Kami boleh menggunakan fungsi JavaScript untuk melaksanakan log masuk pengguna dan fungsi pengesahan kebenaran

JavaScript ialah bahasa skrip yang boleh digunakan untuk menambah kesan interaktif pada halaman web. Antaranya, kesan karusel imej dan tayangan slaid ialah kesan animasi halaman web yang biasa Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript untuk mencapai kedua-dua kesan ini dan memberikan contoh kod tertentu. Karusel gambar Karusel gambar ialah kesan yang memainkan berbilang gambar secara bergilir-gilir dalam cara tertentu. Apabila melaksanakan karusel imej, pemasa JavaScript dan kawalan gaya CSS perlu digunakan. (1) Kerja penyediaan Pertama, dalam fail HTML

Untuk pembangun bahasa Go, memilih perpustakaan kelas yang betul adalah penting. Perpustakaan kelas yang cemerlang boleh meningkatkan kecekapan pembangunan dan mengelakkan mencipta semula roda. Dalam dunia bahasa Go, terdapat banyak perpustakaan kelas yang sangat baik untuk kita pilih, tetapi terdapat juga beberapa perpustakaan kelas "mesti ada" Hari ini saya akan memperkenalkan kepada anda beberapa perpustakaan kelas penting yang saya fikir tidak sepatutnya dilepaskan projek, dan menyediakan contoh Kod khusus disediakan untuk rujukan anda. Sama ada GorillaMux sedang membina API RESTful atau aplikasi web, penghalaan adalah bahagian yang sangat diperlukan.

Menggunakan fungsi JavaScript untuk mencapai interaksi pengguna dan kesan dinamik Dengan pembangunan reka bentuk web moden, interaksi pengguna dan kesan dinamik telah menjadi kunci untuk menarik perhatian pengguna. Sebagai bahasa skrip yang biasa digunakan, JavaScript mempunyai fungsi berkuasa dan ciri fleksibel, dan boleh mencapai pelbagai interaksi pengguna dan kesan dinamik. Artikel ini akan memperkenalkan beberapa fungsi JavaScript biasa dan memberikan contoh kod khusus. Menukar gaya elemen (gaya) boleh diubah dengan mudah melalui fungsi JavaScript

Menggunakan fungsi JavaScript untuk melaksanakan muat naik dan muat turun fail Dengan perkembangan dan mempopularkan Internet, muat naik dan muat turun fail telah menjadi salah satu fungsi biasa dalam aplikasi web. Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript untuk melaksanakan fungsi muat naik dan muat turun fail serta memberikan contoh kod khusus. Muat naik fail Muat naik fail merujuk kepada memuat naik fail tempatan ke pelayan melalui halaman web. FileAPI disediakan dalam HTML5 untuk mengendalikan pemilihan dan muat naik fail. Kita boleh memanfaatkan Fi dalam FileAPI
