`

常用JS代码实例

阅读更多

1. 键盘方向键监听事件和禁止复制操作

<head>
<script language=javascript>
document.onkeydown=nextpage
var prevpage="http://www.xiaoshuo.com/jsp/readchapter.jsp?id=0011020986&chapter=18912&pageid=1"
var nextpage="http://www.xiaoshuo.com/jsp/readchapter.jsp?id=0011020986&chapter=18913&pageid=3"
var indexpage="/readindex/index_0011020986.html"
function nextpage(event) {
	event = event ? event : (window.event ? window.event : null); 
	if (event.keyCode==13) location=indexpage

	if (event.keyCode==37) location=prevpage

	if (event.keyCode==39) location=nextpage
}
</script>
<SCRIPT language=javascript>
function nocopy() 
{
alert("不允许复制");
event.returnValue=false;
}
</SCRIPT>
</head>


<body leftmargin="0"  oncopy=nocopy()>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
<h1>禁止复制</h1>
</body>

 

 

jquery表操作实例,本来想加在留言中,但是javaeye的管理员很莫名其妙的老是隐藏我的帖子,帖子发了不到一分钟就被评委隐藏贴,我真佩服啊,暗箱操作换说是被大家评为隐藏贴,呵呵呵,我哪里发了垃圾贴了,我上午把prototype的lightboxhuanchengjquery的facybox所以发个帖子,谁知就直接评委隐藏贴了,难不成发那种感情贴就可以不隐藏,发技术贴就被隐藏!!!!

 

写道
//泰国气候中的表的渲染
BEUI.E.thailand_QH = function(){

//tbody中第一列居左 , 第3,5,7列字体加粗
$('table#thailand-qh tbody tr').each(function(){
$('td:even',this).css('font-weight','bold');
$('td:eq(0)',this).css({'text-align':'left','font-weight':'normal'});
});



$('table#thailand-qh tbody tr:odd').addClass('thailand-qh-tbody-tr-odd');
$('table#thailand-qh tbody tr:even').addClass('thailand-qh-tbody-tr-even');
};

 

 

  • 大小: 14.5 KB
分享到:
评论
63 楼 vb2005xu 2014-01-02  
字符串中url转链接
var Klink = {
        exp: /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
        replace: function(s)
        {
            return s.replace(this.exp,'<a href="$1" target="_blank">$1</a>');
        }  
    };


更多功能参见: http://stackoverflow.com/questions/37684/how-to-replace-plain-urls-with-links
62 楼 ycysth 2009-08-09  
谢谢了,正在学习
61 楼 vb2005xu 2009-08-05  
对于上面的 "图片漂浮广告代码" 做个简单的补充,可能由于w3c的标准作怪,你看你运行这段代码出现一点小问题

当你在HTML页面中使用了 xhtml的申明时,譬如加上了这个
引用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


当页面高度超出现滚动条时 就会出现  漂移div 下到最下面的现象.参见下文:
http://hi.baidu.com/bluedream_119/blog/item/dc377d4bef83aff783025c68.html

引用

关于获取各种浏览器可见窗口大小的一点点研究
<script>
function getInfo()
{
var s = "";
s = " 网页可见区域宽:" document.body.clientWidth;
s = " 网页可见区域高:" document.body.clientHeight;
s = " 网页可见区域宽:" document.body.offsetWidth " (包括边线和滚动条的宽)";
s = " 网页可见区域高:" document.body.offsetHeight " (包括边线的宽)";
s = " 网页正文全文宽:" document.body.scrollWidth;
s = " 网页正文全文高:" document.body.scrollHeight;
s = " 网页被卷去的高(ff):" document.body.scrollTop;
s = " 网页被卷去的高(ie):" document.documentElement.scrollTop;
s = " 网页被卷去的左:" document.body.scrollLeft;
s = " 网页正文部分上:" window.screenTop;
s = " 网页正文部分左:" window.screenLeft;
s = " 屏幕分辨率的高:" window.screen.height;
s = " 屏幕分辨率的宽:" window.screen.width;
s = " 屏幕可用工作区高度:" window.screen.availHeight;
s = " 屏幕可用工作区宽度:" window.screen.availWidth;


s = " 你的屏幕设置是 " window.screen.colorDepth " 位彩色";
s = " 你的屏幕设置 " window.screen.deviceXDPI " 像素/英寸";
//alert (s);
}
getInfo();
</script>
在我本地测试当中:
在IE、FireFox、Opera下都可以使用
document.body.clientWidth
document.body.clientHeight
即可获得,很简单,很方便。
而在公司项目当中:
Opera仍然使用
document.body.clientWidth
document.body.clientHeight
可是IE和FireFox则使用
document.documentElement.clientWidth
document.documentElement.clientHeight
原来是W3C的标准在作怪啊
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
如果在页面中添加这行标记的话 在IE中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
在FireFox中:
document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度
?
在Opera中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
而如果没有定义W3C的标准,则
IE为:
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
FireFox为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
Opera为:
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)


原因如上,解决方案如下:

//var R= document.body.clientWidth-obj.offsetWidth 
var R= document.documentElement.clientWidth-obj.offsetWidth 

//var B = document.body.clientHeight-obj.offsetHeight 
var B = document.documentElement.clientHeight-obj.offsetHeight 

obj.style.left = x + document.documentElement.scrollLeft 
//obj.style.left = x + document.body.scrollLeft 

obj.style.top = y + document.documentElement.scrollTop 
//obj.style.top = y + document.body.scrollTop 


将 document.body 换成 document.documentElement ,因为你是用了w3c标准,另外
还要重新设置

<div id="body" title="用这个作为根块" >

</div>
<style>
html,body{
	height: 100%;
}
</style>



完整的代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>过客阵营</title>
</head>
<body>
<!--图片漂浮广告代码开始-->

<div id="sese" style="position:absolute;display:none">
<!--链接地址--><a href="http://vb2005xu.iteye.com" target="_blank">
<!--图片地址--><img src="http://www.iteye.com/upload/logo/user/35330/4e311ac1-0916-340c-83bf-e343e6f44427.jpg?1236833606" border="0" width="100" height="90">
</a>
</div>

<script> 
var x = 50,y = 60 
var xin = true, yin = true 
var step = 3 
var delay = 30 
var obj=document.getElementById("sese") 
obj.style.display = '' ;

obj.title = document.documentElement.clientHeight ;
function ad1() { 
var L=T=0
//var R= document.body.clientWidth-obj.offsetWidth 
var R= document.documentElement.clientWidth-obj.offsetWidth 

//var B = document.body.clientHeight-obj.offsetHeight 
var B = document.documentElement.clientHeight-obj.offsetHeight 

obj.style.left = x + document.documentElement.scrollLeft 
//obj.style.left = x + document.body.scrollLeft 

obj.style.top = y + document.documentElement.scrollTop 
//obj.style.top = y + document.body.scrollTop 


x = x + step*(xin?1:-1) 
if (x < L) { xin = true; x = L} 
if (x > R){ xin = false; x = R} 
y = y + step*(yin?1:-1) 
if (y < T) { yin = true; y = T } 
if (y > B) { yin = false; y = B } 
} 
var itl= setInterval("ad1()", delay) 
obj.onmouseover=function(){clearInterval(itl)} 
obj.onmouseout=function(){itl=setInterval("ad1()", delay)} 
</script>

<!--图片漂浮广告代码结束-->


<div id="body" title="用这个作为根块" >

</div>
<style>
html,body{
	height: 100%;
}

div.#body{
	width:99.9%;height:150%;background-color:#efc;
}
</style>

</body>
</html>

60 楼 vb2005xu 2009-08-05  
图片漂浮广告代码

<!--图片漂浮广告代码开始-->

<div id="sese" style="position:absolute;display:none">
<!--链接地址--><a href="http://vb2005xu.iteye.com" target="_blank">
<!--图片地址--><img src="http://www.iteye.com/upload/logo/user/35330/4e311ac1-0916-340c-83bf-e343e6f44427.jpg?1236833606" border="0" width="100" height="90">
</a>
</div>

<script> 
var x = 50,y = 60 
var xin = true, yin = true 
var step = 3 
var delay = 30 
var obj=document.getElementById("sese") 
obj.style.display = '' ;
function ad1() { 
var L=T=0
var R= document.body.clientWidth-obj.offsetWidth 
var B = document.body.clientHeight-obj.offsetHeight 
obj.style.left = x + document.body.scrollLeft 
obj.style.top = y + document.body.scrollTop 
x = x + step*(xin?1:-1) 
if (x < L) { xin = true; x = L} 
if (x > R){ xin = false; x = R} 
y = y + step*(yin?1:-1) 
if (y < T) { yin = true; y = T } 
if (y > B) { yin = false; y = B } 
} 
var itl= setInterval("ad1()", delay) 
obj.onmouseover=function(){clearInterval(itl)} 
obj.onmouseout=function(){itl=setInterval("ad1()", delay)} 
</script>

<!--图片漂浮广告代码结束-->
<div id="body" style="width:99.9%;height:150%;background-color:#efc;" title="用这个作为根块" >

</div>
59 楼 vb2005xu 2009-07-09  
引用

从360某页面中摘出来的验证JS,其中身份证验证做的很地道,很不错,感觉很神奇


Validator = {
    Require : /.+/,
    Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
    Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
    Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
    Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
    IdCard : "this.IsIdCard(value)",
    Currency : /^\d+(\.\d+)?$/,
    Number : /^\d+$/,
    Zip : /^[1-9]\d{5}$/,
    QQ : /^[1-9]\d{4,8}$/,
    Integer : /^[-\+]?\d+$/,
    Double : /^[-\+]?\d+(\.\d+)?$/,
    English : /^[A-Za-z]+$/,
    Chinese :  /^[\u0391-\uFFE5]+$/,
    Username : /^[a-z]\w{3,}$/i,
    UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
    IsSafe : function(str){return !this.UnSafe.test(str);},
    SafeString : "this.IsSafe(value)",
    Filter : "this.DoFilter(value, getAttribute('accept'))",
    Limit : "this.limit(value.length,getAttribute('min'),  getAttribute('max'))",
    LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
    Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
    Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
    Range : "getAttribute('min') < (value|0) && (value|0) < getAttribute('max')",
    Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
    Custom : "this.Exec(value, getAttribute('regexp'))",
    Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
    ErrorItem : [document.forms[0]],
    ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"],
    Validate : function(theForm, mode){
    	var obj = theForm || event.srcElement;
    	var count = obj.elements.length;
    	this.ErrorMessage.length = 1;
    	this.ErrorItem.length = 1;
    	this.ErrorItem[0] = obj;
    	for(var i=0;i<count;i++){
    		with(obj.elements[i]){
    			var _dataType = getAttribute("dataType");
    			if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined")  continue;
    			this.ClearState(obj.elements[i]);
    			if(getAttribute("require") == "false" && value == "") continue;
    			switch(_dataType){
    				case "IdCard" :
    				case "Date" :
    				case "Repeat" :
    				case "Range" :
    				case "Compare" :
    				case "Custom" :
    				case "Group" : 
    				case "Limit" :
    				case "LimitB" :
    				case "SafeString" :
    				case "Filter" :
    					if(!eval(this[_dataType]))	{
    						this.AddError(i, getAttribute("msg"));
    					}
    					break;
    				default :
    					if(!this[_dataType].test(value)){
    						this.AddError(i, getAttribute("msg"));
    					}
    					break;
    			}
    		}
    	}
    	if(this.ErrorMessage.length > 1){
    		mode = mode || 1;
    		var errCount = this.ErrorItem.length;
    		switch(mode){
    		case 2 :
    			for(var i=1;i<errCount;i++)
    				this.ErrorItem[i].style.color = "red";
    		case 1 :
    			alert(this.ErrorMessage.join("\n"));
    			this.ErrorItem[1].focus();
    			break;
    		case 3 :
    			for(var i=1;i<errCount;i++){
    			    try{
        				var span = document.createElement("SPAN");
        				span.id = "__ErrorMessagePanel";
        				span.style.color = "red";
        				this.ErrorItem[i].parentNode.appendChild(span);
        				span.innerHTML = this.ErrorMessage[i].replace(/\d+:/," * ");
    				}
    				catch(e){alert(e.description);}
    			}
    			this.ErrorItem[1].focus();
    			break;
    		default :
    			alert(this.ErrorMessage.join("\n"));
    			break;
    		}
    		return false;
    	}
    	return true;
    },
    limit : function(len,min, max){
    	min = min || 0;
    	max = max || Number.MAX_VALUE;
    	return min <= len && len <= max;
    },
    LenB : function(str){
    	return str.replace(/[^\x00-\xff]/g,"**").length;
    },
    ClearState : function(elem){
    	with(elem){
    		if(style.color == "red")
    			style.color = "";
    		var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
    		if(lastNode.id == "__ErrorMessagePanel")
    			parentNode.removeChild(lastNode);
    	}
    },
    AddError : function(index, str){
    	this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
    	this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
    },
    Exec : function(op, reg){
    	return new RegExp(reg,"g").test(op);
    },
    compare : function(op1,operator,op2){
    	switch (operator) {
    		case "NotEqual":
    			return (op1 != op2);
    		case "GreaterThan":
    			return (op1 > op2);
    		case "GreaterThanEqual":
    			return (op1 >= op2);
    		case "LessThan":
    			return (op1 < op2);
    		case "LessThanEqual":
    			return (op1 <= op2);
    		default:
    			return (op1 == op2);            
    	}
    },
    MustChecked : function(name, min, max){
    	var groups = document.getElementsByName(name);
    	var hasChecked = 0;
    	min = min || 1;
    	max = max || groups.length;
    	for(var i=groups.length-1;i>=0;i--)
    		if(groups[i].checked) hasChecked++;
    	return min <= hasChecked && hasChecked <= max;
    },
    DoFilter : function(input, filter){
           return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, filter.split(/\s*,\s*/).join("|")), "gi").test(input);
    },
    IsIdCard : function(number){
    	var date, Ai;
    	var verify = "10x98765432";
    	var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    	var area = ['','','','','','','','','','','','北京','天津','河北','山西','内蒙古','','','','','','辽宁','吉林','黑龙江','','','','','','','','上海','江苏','浙江','安微','福建','江西','山东','','','','河南','湖北','湖南','广东','广西','海南','','','','重庆','四川','贵州','云南','西藏','','','','','','','陕西','甘肃','青海','宁夏','新疆','','','','','','台湾','','','','','','','','','','香港','澳门','','','','','','','','','国外'];
    	var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
    	if(re == null) return false;
    	if(re[1] >= area.length || area[re[1]] == "") return false;
    	if(re[2].length == 12){
    		Ai = number.substr(0, 17);
    		date = [re[9], re[10], re[11]].join("-");
    	}
    	else{
    		Ai = number.substr(0, 6) + "19" + number.substr(6);
    		date = ["19" + re[4], re[5], re[6]].join("-");
    	}
    	if(!this.IsDate(date, "ymd")) return false;
    	var sum = 0;
    	for(var i = 0;i<=16;i++){
    		sum += Ai.charAt(i) * Wi[i];
    	}
    	Ai +=  verify.charAt(sum%11);
    	return (number.length ==15 || number.length == 18 && number == Ai);
    },
    IsDate : function(op, formatString){
    	formatString = formatString || "ymd";
    	var m, year, month, day;
    	switch(formatString){
    		case "ymd" :
    			m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
    			if(m == null ) return false;
    			day = m[6];
    			month = m[5]*1;
    			year =  (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
    			break;
    		case "dmy" :
    			m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
    			if(m == null ) return false;
    			day = m[1];
    			month = m[3]*1;
    			year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
    			break;
    		default :
    			break;
    	}
    	if(!parseInt(month)) return false;
    	month = month==0 ?12:month;
    	var date = new Date(year, month-1, day);
           return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate());
    	function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
    },
    getObj : function(name){
        var objs = document.getElementsByName(name);
        return objs[objs.length -1];
    },
    dispError : function(items, messages, mode, separator){
        var iArray = items.split(separator);
        for(var i=iArray.length-1;i>=0;i--)
            iArray[i] = this.getObj(iArray[i]);
        messages = ("以下原因导致提交失败:\t\t\t\t" + separator + messages).split(separator);
        switch(mode){
            case 2 :
                for(i=iArray.length-1;i>=0;i--)
                    iArray[i].style.color = "red";
            case 1 :
                alert(messages.join("\n"));
                iArray[0].focus();
                break;
            case 3 :
                for(i=iArray.length-1;i>=0;i--){
                    try{
                        var span = document.createElement("SPAN");
                        span.id = "__ErrorMessagePanel";
                        span.style.color = "red";
                        iArray[i].parentNode.appendChild(span);
                        span.innerHTML = messages[i+1].replace(/\d+:/," * ");
                    }
                    catch(e){alert(e.description);}
                }
                iArray[0].focus();
                break;
        }
    }
}

58 楼 vb2005xu 2009-07-09  
history.back();


返回上一页
57 楼 vb2005xu 2009-06-02  
jquery lightbox 插件的使用
//设置jquery lightbox
	BEUI.E.getLightBoxConfig = function(){
		var imgPath = 'js/jquery-lightbox/images/lightbox-';
		return ({
			// Configuration related to images
			imageLoading:	imgPath + 'ico-loading.gif',		
			imageBtnPrev:	imgPath + 'btn-prev.gif',	
			imageBtnNext:	imgPath + 'btn-next.gif',
			imageBtnClose:	imgPath + 'btn-close.gif',
			imageBlank:		imgPath + 'blank.gif'
		});					
	} ;
	
	/**
	 * 相册特效
	 */
	BEUI.E.confXC = function(){
		$('#exap-content').toggle();
		$('#exap-content table#gallery a').lightBox(BEUI.E.getLightBoxConfig());
		
		//$('#exap-content table#gallery a').lightBox(BEUI.E.getLightBoxConfig());
		$('#exap-content table#gallery tr td').hover(
			function(){
				$(this).css({'background-color':'#cccccc'});
			},
			function(){
				$(this).css({'background-color':'#f1f2d2'});
			}
		);
		$('#exap-content').fadeIn(3600);
	};


具体应用:
$(document).ready(function() {
	BJExtreme.UI.Effects.confXC();
});


页面链接:
http://beijingextreme.com.cn/forwardAction.php?Controller=Thailand#mid=11&sid=-1
56 楼 vb2005xu 2009-06-02  
给自己写的jQuery.iamsese命名空间增加cookie控制功能
	setCookie : function(name, value) {
        var str = name + "=" + value;
		var Then = new Date()
		Then.setTime(Then.getTime() + 1 * 3600000) // 小时
		str += "; expires="+Then.toGMTString();
		str += "; path=/";
		str += "; domain=.beijingextreme.com.cn";
		document.cookie = str;
	},
	getCookie : function(name) {
		var tmp, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)", "gi");
		if (tmp = reg.exec(unescape(document.cookie)))
			return (tmp[2]);
		return null;
	}


例子demo
//将st属性写到cookies里面  -- 使用jquery.iamsese.js cooke功能
			$.iamsese.setCookie('curactText',$(this).attr('st'));
var curactText = $.iamsese.getCookie('curactText');
55 楼 vb2005xu 2009-04-24  
http://phpjs.org/functions/index
PHP功能函数的JS实现
54 楼 vb2005xu 2009-04-24  
http://www.webtoolkit.info
http://code.google.com/p/jspdf/
http://phpjs.org/functions/sprintf
53 楼 vb2005xu 2009-04-23  
function sysb(f,b){
 v = parseFloat(f).toString(b)
 alert(v);
}

sysb(0.45,2);
sysb(0.45,8);
sysb(0.45,16); 
52 楼 vb2005xu 2009-04-21  
/**
 * 定义QUI命名空间
 * 
 * QUI是UCREN的Jquery版本的衍生品
 * 
 */
function QUI(){
	this.version = '1.0' ;
	this.appPath = this.getAppPath();
	
	
	/**
	 * {}对象命名空间 -- 摘自EXT JS
	 * 这个就相当于定义一个包
	 */
	this.ns = function(){
        var a=arguments, o=null, i, j, d, rt;
        for (i=0; i<a.length; ++i) {
            d=a[i].split(".");
            rt = d[0];
            eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
            for (j=1; j<d.length; ++j) {
                o[d[j]]=o[d[j]] || {};
                o=o[d[j]];
            }
        }
    };
    
    /**
     * 定义类方法,如果前面的命名空间不存在则创建之
     */
    this.Class = function(){
    	function cfn(fn){
			var tpl = 'if (typeof #fn# == "undefined"){#fn# = function(){};}' ;
			tpl = tpl.replace(/#fn#/g,fn);
        	eval(tpl);	
        };
        var a=arguments ,ns_str=null ,d, fn;		
		for (var i=0; i<a.length; ++i) {
			ns_str=arguments[i];
			//确保前面的命名空间有效
			d=ns_str.split(".");
			if (d.length === 1)
				cfn(ns_str);
			else {
				var dd = ns_str.replace(d[d.length - 1],''); 
				this.ns(dd);
				cfn(ns_str);
			}
		}
    }
}


QUI.prototype = {
	
	/**
	 * 返回QUI所在的路径 , 用于加载资源文件
	 */ 
	getAppPath: function(){
		var script = document.getElementsByTagName("script");
		for (var i = 0; i < script.length; i++) {
			var match = script[i].src.match(/.*QUI.js($|\?.*)/);
			if (match) {
				return script[i].src.replace(/QUI\.js.*/, '');
			}			
		}
	}
};
var $qui = new QUI();

/**
 * 提供多功能的alert函数
 * 接收 变量,数组,对象,混合对象数组的alert
 */
$qui.Class('Alert');
jQuery.extend(Alert.prototype,{
	
	show: function(){
		var a = arguments[0];
		if (isString(a)){
			a.alert();
		}
		else if (isArray(a))
			a.alert();
		else if (isObject(a))
			Objalert(a);
	}
	
	
});
b = new Alert();
b.show($qui);
51 楼 vb2005xu 2009-04-21  

    
    /**
	 * 函数命名空间的快速查找
	 */
	this.nsQuickFunc = function(){
		/**
		 * 动态创建函数对象的内部函数
		 */
		function cfn(fn){
			var tpl = 'if (typeof #fn# == "undefined"){#fn# = function(){};}' ;
			tpl = tpl.replace(/#fn#/g,fn);
        	eval(tpl);	
        };		
		var a=arguments ,ns_str=null ,d, fn;		
		
		for (var i=0; i<a.length; ++i) {
			ns_str=arguments[i];
			d=ns_str.split(".");
			fn = d[0]; //fn是函数名称
			cfn(fn);
			for (var j=1; j<d.length; ++j) {
	        	fn += '.prototype.' + d[j] ; 
	        	cfn( fn );
	        }
		}
	};
    

50 楼 vb2005xu 2009-04-21  
这里面有的方法摘自 FF浏览器组件

/**
 * @file: common.js
 * @author: 色色[vb2005xu]
 * @date: 2009年4月21日9:34:06
 * @description: 
 * 		通用JS文件,里面定义了常用的一些函数
 */


/**
 * Returns true if the specified value is |null|
 */
function isNull(val) {
	return val === null;
}

/**
 * Returns true if the specified value is an array
 */
function isArray(val) {
	return isObject(val) && val.constructor == Array;
}

/**
 * Returns true if the specified value is a string
 */
function isString(val) {
	return typeof val == "string";
}

/**
 * Returns true if the specified value is a boolean
 */
function isBoolean(val) {
	return typeof val == "boolean";
}

/**
 * Returns true if the specified value is a number
 */
function isNumber(val) {
	return typeof val == "number";
}

/**
 * Returns true if the specified value is a function
 */
function isFunction(val) {
	return typeof val == "function";
}

/**
 * Returns true if the specified value is an object
 */
function isObject(val) {
	return val && typeof val == "object";
}

/**
 * Returns an array of all the properties defined on an object
 */
function getObjectProps(obj) {
	var ret = [];

	for (var p in obj) {
		ret.push(p);
	}

	return ret;
}

/**
 * Returns true if the specified value is an object which has no properties
 * defined.
 */
function isEmptyObject(val) {
	if (!isObject(val)) {
		return false;
	}

	for (var p in val) {
		return false;
	}

	return true;
}

var getHashCode;
var removeHashCode;

(function() {
	var hashCodeProperty = "lang_hashCode_";

	/**
	 * Adds a lang_hashCode_ field to an object. The hash code is unique for
	 * the given object.
	 * 
	 * @param obj
	 *            {Object} The object to get the hash code for
	 * @returns {Number} The hash code for the object
	 */
	getHashCode = function(obj) {
		// In IE, DOM nodes do not extend Object so they do not have this
		// method.
		// we need to check hasOwnProperty because the proto might have this
		// set.
		if (obj.hasOwnProperty && obj.hasOwnProperty(hashCodeProperty)) {
			return obj[hashCodeProperty];
		}
		if (!obj[hashCodeProperty]) {
			obj[hashCodeProperty] = ++getHashCode.hashCodeCounter_;
		}
		return obj[hashCodeProperty];
	};

	/**
	 * Removes the lang_hashCode_ field from an object.
	 * 
	 * @param obj
	 *            {Object} The object to remove the field from.
	 */
	removeHashCode = function(obj) {
		obj.removeAttribute(hashCodeProperty);
	};

	getHashCode.hashCodeCounter_ = 0;
})();

/**
 * Fast prefix-checker.
 */
String.prototype.startsWith = function(prefix) {
	if (this.length < prefix.length) {
		return false;
	}

	if (this.substring(0, prefix.length) == prefix) {
		return true;
	}

	return false;
}

/**
 * Removes whitespace from the beginning and end of the string
 */
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, "");
}

/**
 * Does simple python-style string substitution. "foo%s hot%s".subs("bar",
 * "dog") becomes "foobar hotdot". For more fully-featured templating, see
 * template.js.
 */
String.prototype.subs = function() {
	var ret = this;

	// this appears to be slow, but testing shows it compares more or less
	// equiv.
	// to the regex.exec method.
	for (var i = 0; i < arguments.length; i++) {
		ret = ret.replace(/\%s/, String(arguments[i]));
	}

	return ret;
}


/**
 * Returns the last element on an array without removing it.
 */
Array.prototype.peek = function() {
	return this[this.length - 1];
}

/**
 * Repeat a string -- 2.1的为3 * 
 * @param double number
 * @return str
 * 
 * "1\n".repeat(2.1).alert();
 */
String.prototype.repeat = function(number){
	var str = '' ;
	number = isNumber(number) ? number : 1 ;
	for (var i = 0; i < number; i++) {
		str += this.toString();
	} 
	return str ;
}

/**
 * alert string using debug 
 */
String.prototype.alert = function(){
	alert(this.toString());
}
/**
 * alert array using debug 
 */
Array.prototype.alert = function(){
	
	var arr = this ;
	var array2str = function(arr,tnum){
		//tnum \t的数量
		tnum = isNumber(tnum) ? tnum : 0 ;
		for (var i = 0; i < arr.length; i++) {
			if (isArray(arr[i])) {
			 	//arguments.callee 指代当前函数对象				
				arr[i] = arguments.callee(arr[i],tnum + 1);
			 }
		}
		return	"[" + "\n" +
					"\t".repeat(tnum+1) + 
						arr.join(",\n" + "\t".repeat(tnum+1)).toString() + 				 
				"\n" + "\t".repeat( tnum   ) + "]" ;
			
	};
	array2str(arr).alert();
}

49 楼 vb2005xu 2009-04-20  
String.prototype.alert = function(){alert(this.toString())}
"色色".alert();
48 楼 vb2005xu 2009-04-07  
/**
	 * 解析URL参数,并返回一个对象
	 */	
	getRequestObject : function(parameters){
		var defaults = {
			url : window.location.href
		};
		jQuery.extend(defaults,parameters);
		var allargs = $.trim(defaults.url) ;
		var ro = {};
		ro.url = allargs.split('?')[0] ;
		ro.ps = allargs.split('?')[1] ;
		//URL参数
		ro.before = $.iamsese.getQueryString(ro.ps.split('#')[0]);
		//锚点参数
		ro.after = $.iamsese.getQueryString(ro.ps.split('#')[1]);		
		//$.iamsese.showAlert(ro);
		allargs = null ;
		return ro ;
	}
47 楼 vb2005xu 2009-04-03  
//对 jQuery.iamsese 添加两个实用方法,本人在开发中使用的


	/**
	 * 解析URL查询字符串,传入的参数是经过处理后的 url ? 号后的内容
	 * 返回一个对象
	 * @param {} str
	 * @return {}
	 */
	getQueryString : function(str){
		var allargs = $.trim(str) ;		
		var requestObject = {} ;		
		if (allargs != ''){
			//分割成数组
			allargs = allargs.split("&");
			jQuery.each(allargs,function(k,v){
				var bb = v.split("=");
				eval('requestObject.' + bb[0] + "='" + bb[1] + "';");
			});
		}
		
		allargs = null ;
		return requestObject ;
	} ,
	/**
	 * 从对象生成查询格式的字符串
	 * @param {} obj
	 * @return {}
	 */
	buildQueryString : function(obj){
		var hurl_str = '' ;
		jQuery.each(obj,function(k,v){
			hurl_str += k + '=' + v + '&' ;
		});
		return hurl_str.replace(/&$/, '') ;
	} 	
46 楼 vb2005xu 2009-03-28  
网上有这样一道题目:

一个字符串String=“adadfdfseffserfefsefseetsdg”,找出里面出现次数最多的字母和出现的次数。

经典的解答思路为:取出字符串的第一个字符(首字母),利用的字符串的 replace 方法将符合正则表达式(第一个字符)替代为空,此字母出现的次数为原始的字符串长度减去替代后的字符串长度。循环迭代找出长度最长的字母。

<script type="text/javascript">  var str ="adadfdfseffserfefsefseeffffftsdg"; //命名一个变量放置给出的字符串var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0var result = ''; //命名一个变量放置结果输入  while( str != '' ){ //循环迭代开始,并判断字符串是否为空        oldStr = str; //将原始的字符串变量赋值给新变量        getStr = str.substr(0,1); //用字符串的substr的方法得到第一个字符(首字母)        eval("str = str.replace(/"+getStr+"/g,'')"); //详细如补充          if( oldStr.length-str.length > maxLength ) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度                maxLength = oldStr.length-str.length; //两字符串长度相减得到最大的字符串长度                result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)        }}  alert(result) //弹出结果  </script>



补充:

eval("str = str.replace(/"+getStr+"/g,'')");

可能很多人想这样写 str = str.replace(/getStr/g,”),可结果却是会出错的。为什么呢,在这句中正则表达式匹配的是 getStr 字符串,而不是 getStr 指向的首字母。通过 eval 方法可以避免(首先 getStr 得到指向的首字母,用字符串连接 “str = str.replace(/”+getStr+”/g,”)”,最后在 eval 中执行这段代码,即:先解释Javascript 代码,然后再执行它)。

由于 eval 性能不好,容易出错,而且可读性不好。建议将
eval(”str = str.replace(/”+getStr+”/g,”)”)
改为:

str = str.replace(new RegExp(getStr,"g"),"")
45 楼 vb2005xu 2009-03-27  
对网友的Jquery问题的解答
问题如下:
这样的选择器怎么写
<div drag="true" index="1"></div>
<div drag="true" index="2"></div>
<div drag="true"></div>
找到drag="true" 并且 index="1" 或 无index属性的div,这样的选择器怎么写


解决思路:
1. 找到drag="true" 并且 index="1"
$('div[drag="true"][index="1"]')

2. 找到drag="true" 并且  无index属性的
$("div[drag='true']:not([index])")

3. 将三者联立起来
$("div[drag='true']:not([index]),div[drag='true'][index='1']")

在解答的过程中,我只能解决前两步,呵呵,对于取或操作不知道.
谢谢网友@一切皆有可能 的分享
44 楼 jarymakej2ee 2009-03-27  
很感谢啊 !!! 支持啊!多发一点啊!

相关推荐

    常用js实例

    里面包含了很多常用的就是实例,可用于二次开发

    常用JS代码实例小结第1/2页

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]jquery表操作实例,本来想加在留言中,但是javaeye的管理员很莫名其妙的老是隐藏我的帖子,帖子发了不到一分钟就被评委隐藏贴,我真佩服啊,暗箱操作换说是被大家评为隐藏...

    《JavaScript网页特效实例大全》的源代码

    《JavaScript网页特效实例大全》的源代码,直接使用

    站长常用200个js代码

    精心收集及筛选的很实用的站长常用200个js代码!

    JavaScript精彩网页特效实例精粹(JavaScript常用代码)

    第一章.文本特效类 第二章.图片特效类 第三章.鼠标键盘类 第四章.按钮特效类 第五章....第六章....第七章....第八章....第九章....第十章....第十一章....第十二章....第十三章....第十四章....第十六章.JavaScript连接数据库实例

    常用的486个网页特效源代码实例

    常用的486个网页特效源代码实例,绝对实用,基本上包含了网页开发要用到的效果的源代码

    javascript 400 常用 实例 特效 源代码

    页面 按钮 文本框 鼠标事件 div特效 滤镜 弹出窗口 表格 表单 内部对象 综合实例等等一共23章! 全都是从光盘考过来的html源代码! 绝对的好!我都有点舍不得了!

    常用JAVASCRIPT代码特效

    这里收藏了平时常用的JAVASCRIPT特效网页实例!对做网页特效绝对有用,绝对货真价实!

    JS常用代码大全.pdf

    javascript函数及对象常用实例代码,简洁实用,可供各层次学习者参考学习

    js代码 多种js效果 代码

    js代码 多种js效果 各种效果实例 适合研究

    VBA宏编程示例集50个常用代码

    VBA宏编程示例集50个常用代码 很全面

    当当网上书店案例代码+css+js+images

    当当网上书店案例代码+css+js+images 里面包含了最常用的购物车案例,图片轮播案例,以及上下移动菜单案例,等等,收藏下!

    javaScript常用代码

    javaScript常用代码,里面包含很多常用的javaScript代码实例,方便使用。

    JavaScript array常用方法代码实例详解

    主要介绍了JavaScript array常用方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    ajax常用实例代码

    登陆注册注销 数据库操作 跨页传值 显示长文本的一部分 获得当前服务器信息

    JSP网络编程从基础到实践的实例代码

    JSP网络编程从基础到实践的实例代码 《JSP网络编程从基础到实践》光盘说明 光盘的实例代码目录中包含了前10章的所有实例的源代码,实例名称及其所处章节如下: 第1章 JSP技术概述 实例1 第一个JSP页面 第3章 Web...

    JAVASCRIPT实例自学手册

    全书共分23章,包括486个常用JavaScript实例。每个实例都提供了代码分析及效果演示,可以帮助读者轻松掌握JavaScript的开发技巧,并从中找到网站开发的乐趣。《JavaScript实例自学手册:通过486个例子掌握Web开发捷径...

    JSP网络编程从基础到实践 实例代码

    光盘的实例代码目录中包含了前10章的所有实例的源代码,实例名称及其所处章节如下: 第1章 JSP技术概述 实例1 第一个JSP页面 第3章 Web开发基础 实例2 HTML与JavaScript交互示例 第4章 JSP语法 实例3 JSP程序的...

    JS常用倒计时代码实例总结

    本文实例总结了JS常用倒计时代码。分享给大家供大家参考,具体如下: 第一种:精确到秒的javascript倒计时代码 &lt;form name=form1&gt; 离2010年还有: &lt;input type=textarea name=left size=35 style=text...

    JavaScript常用8种数组去重代码实例

    主要介绍了JavaScript常用8种数组去重代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics