`

常用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实例”这个压缩包中,我们可以期待找到一系列已经编写好的JavaScript代码片段,这些实例可能涵盖了日常开发中的各种常见需求,方便开发者进行二次开发,快速实现特定功能。 首先,让我们探讨一下...

    JavaScript大全 常用JS效果代码

    这个压缩包文件“JavaScript大全 常用JS效果代码”显然包含了一系列实用的JavaScript代码片段,旨在帮助开发者快速实现常见的网页特效和功能。 1. **JS特效**:JavaScript能够创造出丰富的用户体验,如滑动门、轮播...

    站长常用200个js代码

    "站长常用200个js代码"集合了诸多实用的JavaScript代码片段,这些代码对于网站管理员(站长)来说尤其有用,能够帮助他们更高效地构建和维护网站。 1. **页面交互**:JS可以实现丰富的页面交互效果,如按钮点击响应...

    100个常用js代码

    本资料包“100个常用js代码”包含了100段实用的JS代码片段,这些代码可以帮助开发者快速解决常见的编程问题。 1. **基础语法**:JS的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔、null、...

    javascript 400 常用 实例 特效 源代码

    在这个"javascript 400 常用 实例 特效 源代码"压缩包中,包含了丰富的JavaScript编程示例,旨在帮助开发者深入理解和应用JavaScript的各种功能。以下是这些实例和特效所涉及的主要知识点: 1. **页面元素操作**:...

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

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

    javascript常用方法实例

    这个“javascript常用方法实例.chm”文件很可能是包含了这些功能的代码示例,可以帮助开发者更直观地理解和应用这些JavaScript技术。通过学习和实践这些实例,开发者能够提高自己的技能,更好地创建交互性丰富的网页...

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

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

    javaScript经典实例

    10. **模块化**:CommonJS、AMD、ES6模块等方案使得JavaScript代码可组织为模块,提高代码复用性和可维护性。 11. **ES6+特性**:包括箭头函数、解构赋值、模板字符串、类和模块等,这些新特性使JavaScript更现代化...

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

    这个"常用的486个网页特效源代码实例"集合涵盖了HTML、CSS和JavaScript的多种应用,是网页开发者不可多得的资源库。 首先,HTML(超文本标记语言)是网页的基础,用于构建网页的结构。在这些源代码实例中,你可以...

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

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

    精心收集的WEB开发常用JS代码大全

    在本资源"精心收集的WEB开发常用JS代码大全"中,包含了一系列广泛应用于Web开发的JS代码片段,这些代码对开发者来说是极其宝贵的参考资料。 1. **DOM操作**:JS通过Document Object Model(DOM)接口可以访问和操作...

    常用JAVASCRIPT代码

    本资料包"常用JAVASCRIPT代码"包含了几个常见的JavaScript代码示例,旨在帮助开发者快速理解和应用JavaScript。 1. **基础语法** JavaScript的基础包括变量声明(`var`, `let`, `const`),数据类型(如字符串、...

    城市切换代码实例

    在这个"城市切换代码实例"中,我们可以深入探讨相关的编程技术和实现策略。 首先,城市切换通常涉及到前端与后端的交互。前端部分,代码可能使用HTML、CSS和JavaScript来构建用户界面,提供一个下拉菜单或者搜索框...

    javascript实例

    这个“javascript实例”压缩包很可能包含了一系列JavaScript代码示例,旨在帮助初学者或开发者理解并掌握JavaScript的核心概念和常用技巧。 在JavaScript中,我们有以下几个重要的知识点: 1. **变量与数据类型**...

    前端开发实用技术教程代码实例

    本资源提供的"前端开发实用技术教程代码实例"是针对一本专门讲述前端开发实用技术的书籍,非常适合初学者进行学习和实践。下面我们将深入探讨 JavaScript 的核心概念、常见应用以及这些实例代码可能涵盖的内容。 ...

    ajax常用实例代码

    【Ajax常用实例代码】主要涵盖了Web开发中的几个关键应用场景,包括用户登录注册注销、数据库交互、跨页面数据传递、文本片段展示以及获取服务器信息。这些功能在构建动态、交互性强的Web应用时非常常见,而Ajax技术...

    js代码示例.rar

    本压缩包“js代码示例.rar”包含了一系列基础到进阶的JS应用实例,共计九十多个,涵盖了下拉列表、DOM操作、事件流等重要知识点。 1. **下拉列表**:在网页中,下拉列表通常由`&lt;select&gt;`元素创建,用于提供多个选项...

    常用JAVASCRIPT代码特效

    本资源“常用JAVASCRIPT代码特效”显然包含了各种实用的JavaScript特效实例,对于网页开发者来说是一份宝贵的参考资料。 1. **基础概念**: - JavaScript是ECMAScript规范的实现,它的核心包括变量、数据类型、...

    部分常用JavaScript代码

    博客中的“部分常用JavaScript代码.txt”可能包含了上述知识点的具体实例,读者可以通过这些代码加深对JavaScript的理解,并将其应用到实际项目中。不断实践和学习,才能更好地掌握这门强大的脚本语言。

Global site tag (gtag.js) - Google Analytics