function setCookie(name,value)
{
var Days = 30; //此 cookie 將被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}
<script type="text/javascript">
var _st = window.setTimeout;
/*重載window.setTimeout函數,引用的函數能夠帶參數*/
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
alert(typeof(argu));
var f = (function(){ fRef.apply(null, argu); });
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x){
alert(x);
}
window.setTimeout(test,3000,'fason');
</script>
<script language=javascript>
<!--
/*@cc_on @*/
/*@if (@_win32 && @_jscript_version>=5)
function window.confirm(str)
{
str=str.replace(/\'/g, "'&chr(39)&'").replace(/\r\n|\n|\r/g, "'&VBCrLf&'");
execScript("n = msgbox('"+ str +"', 257, '自定的的 confirm')", "vbscript");
return(n==1);
}
@end @*/
alert(confirm('sure?'));
// -->
</script>
//兩端去空格函數
function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g,"");
}
<script>
//爲Number增長length方法
Number.prototype.length = function()
{
return String(this).length;
}
alert((11).length())
</script>
Ms XmlDom 異步裝載Xml文件
放在這裏,算做是資源備份吧。
<script>
var xmldoc;
function Load(){
xmldoc = new ActiveXObject("Msxml2.DOMDocument");
xmldoc.onreadystatechange = CheckState;
xmldoc.resolveExternals = false;
xmldoc.load(URL.value);
}
function CheckState(){
var state = xmldoc.readyState;
RESULTS.innerHTML += "加載狀態 = " + state + "<BR>"
if (state == 4){
var err = xmldoc.parseError;
if (err.errorCode != 0)
RESULTS.innerHTML += err.reason + "<BR>"
else
{
RESULTS.innerHTML += "加載成功。" + "<BR>"
alert(xmldoc.xml)
}
}
}
</script>
URL: <input type=text size=60 id=URL value="http://dotnet.aspx.cc/Rss.aspx">
<input type=button value="正在XML" onclick="Load()">
<div id=RESULTS style="color:red; font-weight:bold;"></div></script>
//帶中文字符串長度,一箇中文字長度爲2
String.prototype.lenB = function(){return this.replace(/[^\x00-\xff]/g,"**").length;}
document.all.tes1.value.lenB();
預判斷一下連接URL是否可用
<script language="javascript">
function getURL(url)
{
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET",url,false);
xmlhttp.send();
if (xmlhttp.readyState==4)
alert((xmlhttp.Status==200)?"存在":"不存在");
}
//user like this:
getURL("http://localhost/1.asp")
</script>
//將數字轉換成三位逗號分隔的樣式
function formatNum(s)
{
if(!/^(\+|-)?\d+(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var re = new RegExp().compile("(\\d)(\\d{3})(,|\\.|$)");
num += ""; while(re.test(num))
num = num.replace(re, "$1,$2$3")
return num;
}
alert(formatNum(-12345678.123));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000"));
格式化日期:yyyy-m-d to yyyy-mm-dd
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = "2005-3-2"; //2005-03-02
var str = "2005-3-22"; //2005-03-02
str = str.replace(/(\D)(\d)(?=\D|$)/g, "$10$2");
alert(str);
//-->
</SCRIPT>
表格中的行刪除功能,用checkbox選擇的
<script language="JavaScript">
<!--
var curRow=null;
function selectRow(tr1){
if(curRow)
curRow.bgColor="#FFFFFF";
tr1.bgColor="e7e7e7";
curRow=tr1;
}
function delTr(){
var chks=document.getElementsByName("chkDelete");
var tb=document.getElementById("tbContent");
for(var i=chks.length-1;i>=0;i--){
if(chks[i].checked){
tb.deleteRow(i);
}
}
}
//-->
</script>
<div align="center" style="overflow:auto; width:400; height:300px " id="divVector">
<table id="tbContent" border=1 width="300">
<script language="JavaScript">
<!--
for(var i=0;i<25;i++)
document.write('<tr height=20 onmouseover="selectRow(this)"><td algin="center"
width="20%"><input type="checkbox" name="chkDelete"></td><td width="80%"
align="center">'+i+'</td></tr>');
//-->
</script>
</table>
</div>
<input type="button" value=" 刪除選中的行 " onclick="delTr()">
yyyy-mm-dd格式日期完整校驗加提示
<script language="JavaScript">
<!--
function CheckDate(strDate){
var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;
if(!reg.test(strDate)){
alert("日期格式不正確!\n正確格式爲:2004-01-01");
return false;
}
var ss=strDate.split("-");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year))){alert("年份輸入有誤,請從新輸入!"); return false;}
else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份應該在1950-2050之間
!"); return false}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month))){alert("月份輸入有誤,請從新輸入!"); return false;}
else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份應該在1-12之間!");
return false}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期輸入有誤,請從新輸入!"); return false;}
else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期應該在1
-"+daysOfMonth+"之間!"); return false;}
else return true;
}
function CalDays(year,month){
var date= new Date(year,month,0);
return date.getDate();
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
alert(CheckDate("2007-02-29"));
//-->
</script>
<script language="JavaScript">
<!--
/* 函數名稱 : dateAfterDays
* 函數功能 : 返回與某日期相距N天(N個24小時)的日期
* 函數參數 : num number類型 能夠爲正負整數或者浮點數
* 函數返回 : 新的日期
* 調用方法 : dateObject.dateAfterDays(num);
*/
Date.prototype.dateAfterDays=function(num){
if(typeof(num)!="number") throw new Error("Date(num)參數爲數值類型.",-1);
var date = this.valueOf();
date += num*24*3600*1000;
return new Date(date);
}
var dd= new Date();
alert(dd.dateAfterDays(1.5));
//-->
</script>
相似CSDN感興趣社區配置頁面中的checkbox選擇的功能
<script language="JavaScript">
<!--
function chkClk(obj){
var chks=document.getElementsByName(obj.name);
if(obj.flag=="main"){
for(var i=1;i<chks.length;i++)
chks[i].checked=obj.checked;
}
else{
for(var i=1;i<chks.length;i++)
if(chks[i].checked==false){
chks[0].checked=false;
break;
}
else{
if(i==chks.length-1) chks[0].checked=true;
}
}
}
//-->
</script>
<input type="checkbox" onclick="chkClk(this)" name="type1" flag="main">typetext
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type1">typetext</li>
<br/><br/>
<input type="checkbox" onclick="chkClk(this)" name="type2" flag="main">typetext
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>
<li><input type="checkbox" onclick="chkClk(this)" name="type2">typetext</li>javascript
==========================================================
JAVASCRIPT的經常使用技術(二)
css
一、事件類
1.1 屏蔽右鍵
在body標籤里加上oncontextmenu=self.event.returnValue=false
1.2 屏蔽全部功能鍵html
1.3 --> 和<-- F5 F11,F9,F1java
1.4 屏蔽組合鍵ctrl+N瀏覽器
<script language=javascript>
function KeyDown(){
if ((window.event.altKey)&&
((window.event.keyCode==37)|| file://屏蔽 Alt+ 方向鍵 ←
(window.event.keyCode==39))){ file://屏蔽 Alt+ 方向鍵 →
alert("不許你使用ALT+方向鍵前進或後退網頁!");
event.returnValue=false;
}
if ((event.keyCode==8)|| file://屏蔽退格刪除鍵
(event.keyCode==116)){ file://屏蔽 F5 刷新鍵
event.keyCode=0;
event.returnValue=false;
}
if ((event.ctrlKey)&&(event.keyCode==78)){ file://屏蔽 Ctrl+n
event.returnValue=false;
}
if ((event.shiftKey)&&(event.keyCode==121)){ file://屏蔽 shift+F10
event.returnValue=false;
}
if (event.keyCode==122){ file://屏蔽 F11
event.returnValue=false;
}
}
只要知道keyCode便可屏蔽全部功能鍵cookie
1、驗證類
一、數字驗證內
1.1 整數
/^(-|\+)?\d+$/.test(str)
1.2 大於0的整數 (用於傳來的ID的驗證)
/^\d+$/.test(str)
1.3 負整數的驗證
/^-\d+$/.test(str)
二、時間類
2.1 短期,形如 (13:04:06)
function isTime(str)
{
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null) {alert('輸入的參數不是時間格式'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("時間格式不對");
return false
}
return true;
}
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 長時間,形如 (2003-12-05 13:04:06)
function strDateTime(str)
{
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return app
(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&
d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==less
r[7]);
}
2.4 只有年和月。形如(2003-05,或者2003-5)
2.5 只有小時和分鐘,形如(12:03)
三、表單類
3.1 全部的表單的值都不能爲空
<input onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')alert('不能爲空!')">
3.2 多行文本框的值不能爲空。
3.3 多行文本框的值不能超過sMaxStrleng
3.4 多行文本框的值不能少於sMixStrleng
3.5 判斷單選框是否選擇。
3.6 判斷複選框是否選擇.
3.7 複選框的全選,多選,全不選,反選
3.8 文件上傳過程當中判斷文件類型
四、字符類
4.1 判斷字符所有由a-Z或者是A-Z的字字母組成
<input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有錯')">
4.2 判斷字符由字母和數字組成。
<input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有錯')">
4.3 判斷字符由字母和數字,下劃線,點號組成.且開頭的只能是下劃線和字母
/^([a-zA-z_]{1})([\w]*)$/g.test(str)
4.4 字符串替換函數.Replace();
五、瀏覽器類
5.1 判斷瀏覽器的類型
window.navigator.appName
5.2 判斷ie的版本
window.navigator.appVersion
5.3 判斷客戶端的分辨率
window.screen.height; window.screen.width;
六、結合類
6.1 email的判斷。
function ismail(mail)
{
return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)
[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
}
6.2 手機號碼的驗證
6.3 身份證的驗證
function isIdCardNo(num)
{
if (isNaN(num)) {alert("輸入的不是數字!"); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
else if (len == 18)
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
else {alert("輸入的數字位數不對!"); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&
D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&
D.getDate()==a[5];
}
if (!B) {alert("輸入的身份證號 "+ a[0] +" 裏出生日期不對!"); return false;}
}
return true;
}異步
3.7 複選框的全選,多選,全不選,反選
<form name=hrong>
<input type=checkbox name=All onclick="checkAll('mm')">全選<br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/>
<input type=checkbox name=mm onclick="checkItem('All')"><br/><br/>函數
<input type=checkbox name=All2 onclick="checkAll('mm2')">全選<br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
<input type=checkbox name=mm2 onclick="checkItem('All2')"><br/>
</form>
<SCRIPT LANGUAGE="javascript">
function checkAll(str)
{
var a = document.getElementsByName(str);
var n = a.length;
for (var i=0; i<n; i++)
a[i].checked = window.event.srcElement.checked;
}
function checkItem(str)
{
var e = window.event.srcElement;
var all = eval("document.hrong."+ str);
if (e.checked)
{
var a = document.getElementsByName(e.name);
all.checked = true;
for (var i=0; i<a.length; i++)
{
if (!a[i].checked){ all.checked = false; break;}
}
}
else all.checked = false;
}
</SCRIPT>
3.8 文件上傳過程當中判斷文件類型
<input type=file onchange="alert(this.value.match(/^(.*)(\.)(.{1,8})$/)[3])">
不斷地清空剪貼板:
<body onload="setInterval('clipboardData.setData(\'Text\',\'\')',100)">
<script language="javascript" type="text/javascript">
file://先複製同樣東西,或者文本或者圖片
if(clipboardData.getData("Text")||clipboardData.getData("HTML")||
clipboardData.getData("URL"))
{
alert("有效行爲");
}
</script>
===========================================================
JAVASCRIPT的經常使用技術(三)
真正的全屏頁面解決之道!(全代碼) 真正全屏解決之道: 1.htm <html> <head> <title>無標題文檔</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body onload="window.open('fullscreen.htm','','fullscreen=1,scroll=no');"> </body> </html> fullscreen.htm <html> <head> <title>無標題文檔</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <script language="javascript1.2"> <!-- function opensmallwin(myurl){ var w2=300;//想彈出窗口的寬度 var h2=100;//想彈出窗口的高度 var w3=window.screen.width/2-w2/2; var h3=window.screen.height/2-h2/2; window.open(myurl,'small','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=0,width='+ w2 +',height='+ h2 +',left='+ w3 +',top='+ h3 +''); } file://--> <!-- function modelesswin(url,mwidth,mheight){ if (document.all&&window.print) eval('window.external.m2_blocked(url,"","help:0;resizable:0;status:0;center:1;scroll:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px")') else eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=1,scrollbars=1")') } file://--> </script> </head> <body scroll="no"> <div align="right"><a href="javascript:" onclick="window.close()">關閉</a> </div> <p></P> <div align="right"><a href="javascript:" onclick="opensmallwin('login.htm')">登陸</a> </div> <p></P> <div align="center"><a href="javascript:" onclick="modelesswin('login.htm',300,160)">用模態登陸窗口</a> </div> </body> </html> login.htm <html> <head> <title>用戶登陸</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css"> <!-- body { background-color: #EAEAEA; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 24px; color: #336699; } input.boxline { width: 100px; font-family: "Times New Roman", "Times", "serif"; font-size: 9pt; border: 1px solid #669999; height: 18px; } input.whiteline { font-size: 12px; border: 1px #999999 solid } --> </style></head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="14" bgcolor="#CCCCCC"> <tr valign="top"> <td width="10%" nowrap align="right"><b>用戶名:</b></td> <td width="90%"><input name="textfield1" type="text" size="25" class="whiteline"></td> </tr> <tr valign="top"> <td nowrap align="right"><b>密 碼:</b></td> <td><input name="textfield12" type="password" size="25" class="whiteline"></td> </tr> <tr valign="top"> <td> </td> <td><input type="submit" name="Submit" value="登 錄" class="boxline"></td> </tr> </table> </body> </html> 自動關掉原窗口: <html> <head> <title>無標題文檔</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --> </style> </head> <body onload="window.open('fullscreen.htm','','fullscreen=1,scroll=no');window.opener=null;window.close()"> <input type=button value=關閉 onclick="window.opener=null;window.close()"> <!-- IE5.5+ 不會有彈出提示 --> <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></OBJECT> <input type=button value=關閉窗口 onclick=document.all.WebBrowser.ExecWB(45,1)> </body> </html> 關鍵是在onload事件中加入: window.opener=null;window.close() 預讀圖片: <SCRIPT LANGUAGE="javascript"> <!-- This script and many more are available free online at --> <!-- The javascript Source!! <a href=http://javascript.internet.com target=_blank>http://javascript.internet.com --> <!-- Begin image1 = new Image(); image1.src = "image1.gif"; image2 = new Image(); image2.src = "image2.gif"; // End --> </script> 關於兩個網頁刷新交互的問題 JS處理方法: a.htm <a href="b.htm" target=blank>發表留言</a> <script> alert("wwwwwwwwwwwwwwwwwwwwwwwwww"); </script> b.htm <script language="javascript"> file://window.opener.location.reload();刷新父窗口 file://window.opener.location="2.htm"//重定向父窗口到2.htm頁 function closewindow() { window.opener.location.reload(); self.close(); window.opener.document.write("sssssssssssssssssss"); } </script> <a href="b.htm" target=blank onclick="closewindow();">關閉</a> 後臺處理方法: private btnForSubmit(Object sender,EventArgs e) { ............. Response.Write("<script>window.opener.document.execCommand('refresh');window.opener='';window.close();</script>"); file://string str="<script>window.opener.document.execCommand('refresh');window.opener='';window.close();</script>"; file://this.RegisterStartupScript("mycode",str);------------