<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>js &#8211; LPC影子技术分享</title>
	<atom:link href="https://www.mudbest.com/tag/js/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mudbest.com</link>
	<description>行影不离,忘之却步.</description>
	<lastBuildDate>Sun, 29 Dec 2013 08:14:49 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>使用PHP将JS的unicode编码转换为可识别的汉字</title>
		<link>https://www.mudbest.com/%e4%bd%bf%e7%94%a8php%e5%b0%86js%e7%9a%84unicode%e7%bc%96%e7%a0%81%e8%bd%ac%e6%8d%a2%e4%b8%ba%e5%8f%af%e8%af%86%e5%88%ab%e7%9a%84%e6%b1%89%e5%ad%97/</link>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Sun, 29 Dec 2013 08:14:49 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[unicode]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=1943</guid>

					<description><![CDATA[今天抓数据的时候，发现js里的汉字全部为“\u738B\u6668”这样的字符串，没想到如何转到可识别的中文汉...]]></description>
										<content:encoded><![CDATA[<p>今天抓数据的时候，发现js里的汉字全部为“\u738B\u6668”这样的字符串，没想到如何转到可识别的中文汉字，那么下面这段函数产生了……</p>
<p>直接贴code：<br />
<span id="more-1943"></span></p>
<pre class="brush: php; title: ; notranslate">
/**
 * 将js的unicode转换为中文
 * @param string $strHtml
 * @return string
 */
public function charReplace($strHtml){
	if(empty($strHtml)){
		return '';
	}
	$pregReg = '/(\\\u(&#x5B;\w]{4}))|(&#x5B;\x7f-\xff]+)/i';
	$arrTempData = array();
	preg_match_all($pregReg, $strHtml,$arrTempData);
	if(!empty($arrTempData)){
		//初始一个字符串变量
		$str = '';
		//循环处理
		for($i=0;$i&lt;count($arrTempData&#x5B;0]);$i++){
			$strTemp = $arrTempData&#x5B;0]&#x5B;$i];
			if (strpos($strTemp, '\\u') === 0){
				$strAry1 = base_convert(substr($strTemp, 2 , 2), 16, 10);
				$strAry2 = base_convert(substr($strTemp, 4), 16, 10);
				$strChr = chr($strAry1).chr($strAry2);
				//如果不是linux系统，则转换
				if(preg_match(&quot;/WIN/i&quot;,PHP_OS)){
					$strChr = iconv('UCS-2', 'UTF-8', $strChr);
				}
				//$str .= $strChr;
				$arrCharStartReplace&#x5B;] = $arrTempData&#x5B;0]&#x5B;$i];
				$arrCharEndReplace&#x5B;] = $strChr;
				//echo $arrTempData&#x5B;0]&#x5B;$i].'==='.$strCh.&quot;\r\n&quot;;
			}
		}
	}
	$strHtml = str_replace($arrCharStartReplace, $arrCharEndReplace, $strHtml);
	return $strHtml;
}
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ControlJS简单应用介绍</title>
		<link>https://www.mudbest.com/controljs%e7%ae%80%e5%8d%95%e5%ba%94%e7%94%a8%e4%bb%8b%e7%bb%8d/</link>
					<comments>https://www.mudbest.com/controljs%e7%ae%80%e5%8d%95%e5%ba%94%e7%94%a8%e4%bb%8b%e7%bb%8d/#comments</comments>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Fri, 16 Mar 2012 05:45:46 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ControlJS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=954</guid>

					<description><![CDATA[Steve Souders 最近做了这么一个东西—— ControllJs。 主要为了是解决网页加载中Js文件...]]></description>
										<content:encoded><![CDATA[<p>Steve Souders 最近做了这么一个东西—— ControllJs。 主要为了是解决网页加载中Js文件的性能问题。这里做一个简单的转述。</p>
<p>众所周知，资源文件在浏览器加载直至用户可用是有两个阶段的：加载，执行。JavaScript的加载会阻滞其他资源的加载，而由于浏览器渲染是单线程的，JS执行的同时浏览器实际是假死状态的，页面渲染会停止，浏览器也不会下载新的文件。这样也会造成很大的性能问题， 所以Steve提出了三个方法：异步加载；延迟执行；覆写document.write。<br />
<strong><br />
1. 异步加载</strong><br />
核心思想还是很简单：让页面中的js片段对浏览器不可识别。jquery的template也是用了类似的方法。</p>
<p>外链脚本：由</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;main.js&quot;&gt;&lt;script&gt; 
</pre>
<p><span id="more-954"></span><br />
改写成</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/cjs&quot; src=&quot;main.js&quot;&gt;&lt;script&gt; 
</pre>
<p>内联脚本：由</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;sth...&lt;script&gt;
</pre>
<p>改写成</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/cjs&quot;&gt;sth...&lt;script&gt; 
</pre>
<p>这样子的type声明，浏览器是识别不了的，也不会去加载，更不会执行非ie浏览器不会加载，ie浏览器会加载这个文件，但所有都不会执行内部脚本。</p>
<p>接下来，对于外链的脚本，取出所有的src属性，通过Image或Object元素加载进页面（可参考css,javascript的预加载）。 这样加载的文件不会执行，节省了js的执行时间。</p>
<p>Gmail团队使用了另外一种方法，内联的js全部都放在/*&#8230;*/的注释中。也是可以参考的一种方法。</p>
<p>对于没有其他处理的脚本，ControlJS将在window.onload之后执行。对于外链重新创建一个正常的script运行，对于内联则直接eval。如果需要延迟，则需要采取下面的防范。</p>
<p><strong>2. 延迟执行</strong></p>
<p>正如前面说的，JS的执行也会带来大量性能问题。而据统计，一个页面只有29%的脚本是对于页面渲染，逻辑执行等有关系的，其余71%都是在页面加载之后执行，很多用户甚至都不会有机会执行他们。如果将这71%的脚本放在用户触发行为产生时才执行，将是对页面初期渲染性能多大的提升啊。</p>
<p>在ControlJs中，只需要简单做下面一步： </p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script cjsexec=false type=&quot;text/cjs&quot; cjssrc=&quot;jquery.min.js&quot;&gt;&lt;/script&gt;
</pre>
<p>声明一个cjsexec为false即可。到需要执行的时候，调用：</p>
<pre class="brush: jscript; title: ; notranslate">
CJS.execScript(&quot;fg.menu.js&quot;, createExamplesMenu);
</pre>
<p>即可。</p>
<p><strong>3. 重写document.write</strong></p>
<p>由于ControlJs会将所有脚本在window.onload之后执行。如果此时页面中有内联脚本执行document.write（广告等），将会自动执行window.open，所有的document.write的内容将取代现有页面的内容，这是不可接受的。</p>
<p>于是Steve重写了document.write，当调用时，会在script节点前自动创建一个span 标签，并把document.write的输出放到span里面去。这个能解决部分问题。</p>
<p>这里有个简单的DEMO：<br />
1. 引入 ControlJS</p>
<pre class="brush: jscript; title: ; notranslate">
var cjsscript = document.createElement('script');
cjsscript.src = &quot;control.js&quot;;
var cjssib = document.getElementsByTagName('script')&#x5B;0];
cjssib.parentNode.insertBefore(cjsscript, cjssib);
</pre>
<p>2. 修改外部脚本</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;main.js&quot;&gt;&lt;script&gt;
</pre>
<p>改为</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/cjs&quot; data-cjssrc=&quot;main.js&quot;&gt;&lt;script&gt;
</pre>
<p>3. 修改 inline 脚本</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
var name = getName();
&lt;script&gt;
</pre>
<p>改为 “text/cjs”, 如下所示：</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/cjs&quot;&gt;
var name = getName();
&lt;script&gt;
</pre>
<p><strong>#ControlJS 包括了下面一些其他脚本加载程序没有的特点：</strong></p>
<p>    异步下载脚本<br />
    能同时处理外链和内联脚本<br />
    让脚本在页面加载完成之后才执行<br />
    支持脚本单纯下载但不执行<br />
    使用原生HTML<br />
    解决了部分document.write的问题<br />
    control.js自身加载是异步的 </p>
<p><strong>其他相关参考文档：</strong><br />
http://www.stevesouders.com/blog/2010/12/15/controljs-part-1/<br />
http://www.stevesouders.com/blog/2010/12/15/controljs-part-2/<br />
http://www.stevesouders.com/blog/2010/12/15/controljs-part-3/<br />
http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html （需翻墙）</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mudbest.com/controljs%e7%ae%80%e5%8d%95%e5%ba%94%e7%94%a8%e4%bb%8b%e7%bb%8d/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>JS倒计时代码整理</title>
		<link>https://www.mudbest.com/js%e5%80%92%e8%ae%a1%e6%97%b6%e4%bb%a3%e7%a0%81%e6%95%b4%e7%90%86/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 23 Feb 2011 07:07:21 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[倒计时]]></category>
		<guid isPermaLink="false">http://blog.mudbest.com/?p=404</guid>

					<description><![CDATA[第一种：精确到秒的javascript倒计时代码 HTML代码: &#60;form name=&#34;fo...]]></description>
										<content:encoded><![CDATA[<p>第一种：精确到秒的javascript倒计时代码</p>
<p>HTML代码:<span id="more-404"></span></p>
<pre class="brush: xml; title: ; notranslate">
&lt;form name=&quot;form1&quot;&gt;
&lt;div align=&quot;center&quot; align=&quot;middle&quot;&gt;
&lt;center&gt;离2012年还有:&lt;br&gt;
&lt;input type=&quot;textarea&quot; name=&quot;left&quot; size=&quot;35&quot; style=&quot;text-align: center&quot; mce_style=&quot;text-align: center&quot;&gt;
&lt;/center&gt;
&lt;/div&gt;
&lt;/form&gt;
&lt;mce:script LANGUAGE=&quot;javascript&quot;&gt;&lt;!--
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 &lt;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&lt;0)
{
Secondleft=60+Secondleft;
Minuteleft=Minuteleft-1;
}
if (Minuteleft&lt;0)
{ 
Minuteleft=60+Minuteleft;
Hourleft=Hourleft-1;
}
if (Hourleft&lt;0)
{
Hourleft=24+Hourleft;
Dateleft=Dateleft-1;
}
if (Dateleft&lt;0)
{
Dateleft=31+Dateleft;
Monthleft=Monthleft-1;
}
if (Monthleft&lt;0)
{
Monthleft=12+Monthleft;
Yearleft=Yearleft-1;
}
Temp=Yearleft+'年, '+Monthleft+'月, '+Dateleft+'天, '+Hourleft+'小时, '+Minuteleft+'分, '+Secondleft+'秒'
document.form1.left.value=Temp;
timerID = setTimeout(&quot;showtime()&quot;,1000);
timerRunning = true;
}
var timerID = null;
var timerRunning = false;
function stopclock () {
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function startclock () {
stopclock();
showtime();
}
// --&gt;&lt;/mce:script&gt;
</pre>
<p>第二种：某某运动会<br />
HTML代码：</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!--倒计时Javascript begin--&gt;

 &lt;mce:script language=&quot;JavaScript&quot;&gt;&lt;!--
 
 function DigitalTime1()
 { 
 var deadline= new Date(&quot;08/13/2007&quot;) //开幕倒计时
 var symbol=&quot;8月13日&quot;
 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(&quot;08/13/2004&quot;) //开幕后计时
 var symbol_2=&quot;8月13日&quot;
 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&gt;0) //还未开幕
 {
 //LiveClock1.innerHTML = &quot;现在&quot;+symbol+&quot;天&quot;
 LiveClock1.innerHTML = &quot;&lt;font class=fon1&gt;距离&quot;+symbol+&quot;开幕还有&lt;font class=fon2&gt;&quot;+day+&quot;&lt;/font&gt;天&lt;/font&gt;&quot;
 setTimeout(&quot;DigitalTime1()&quot;,1000)
 }

 if (day&lt;0) //已经开幕
 {
 //LiveClock1.innerHTML = &quot;现在离&quot;+symbol+&quot;还有&quot;+day+&quot;天&quot;+hour+&quot;小时&quot;+minute+&quot;分&quot;+second +&quot;秒&quot;
 LiveClock1.innerHTML = &quot;&lt;font class=fon1&gt;&quot;+symbol+&quot;开幕已有&lt;font class=fon2&gt;&quot;+day_2+&quot;&lt;/font&gt;天&lt;/font&gt;&quot;
 setTimeout(&quot;DigitalTime1()&quot;,1000)

 }

 if (day==0) //正在开幕
 {
 //LiveClock1.innerHTML = &quot;现在&quot;+symbol+&quot;天&quot;
 LiveClock1.innerHTML = &quot;&lt;font class=fon1&gt;某某运动会今天开幕&lt;/font&gt;&quot;
 setTimeout(&quot;DigitalTime1()&quot;,1000)
 }
 
 if (day&lt;0 &amp; day_2&gt;19) //某某运动会结束
 {
 //LiveClock1.innerHTML = &quot;现在离&quot;+symbol+&quot;还有&quot;+day+&quot;天&quot;+hour+&quot;小时&quot;+minute+&quot;分&quot;+second +&quot;秒&quot;
 LiveClock1.innerHTML = &quot;&lt;font class=fon1&gt;某某运动会已全部结束&lt;/font&gt;&quot;
 setTimeout(&quot;DigitalTime1()&quot;,1000)

 }

 }
// --&gt;&lt;/mce:script&gt;
 &lt;!--倒计时Javascript end--&gt;
&lt;body onload=DigitalTime1()&gt;
&lt;div id= LiveClock1&gt;&lt;/div&gt;
&lt;/body&gt;
</pre>
<p>第三种：小时倒计时<br />
HTML代码:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;
&lt;!--
var maxtime = 60*60 //一个小时，按秒计算，自己调整!
function CountDown(){
 if(maxtime&gt;=0){
 minutes = Math.floor(maxtime/60);
 seconds = Math.floor(maxtime%60);
 msg = &quot;距离结束还有&quot;+minutes+&quot;分&quot;+seconds+&quot;秒&quot;;
 document.getElementById('timer').innerHTML=msg;
 if(maxtime == 5*60) alert('注意，还有5分钟!');
 --maxtime;
 }
 else{
 clearInterval(timer);
 alert(&quot;时间到，结束!&quot;);
 }
}
timer = setInterval(&quot;CountDown()&quot;,1000);
//--&gt;
&lt;/SCRIPT&gt;

&lt;div id=&quot;timer&quot; style=&quot;color:red&quot; mce_style=&quot;color:red&quot;&gt;&lt;/div&gt;
</pre>
<p>第四种：最简倒计时<br />
代码:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;Script Language=&quot;JavaScript&quot;&gt; 
&lt;!-- Begin 
　　var timedate= new Date(&quot;January 14,2006&quot;); 
　　var times=&quot;研究生考试&quot;; 
　　var now = new Date(); 
　　var date = timedate.getTime() - now.getTime(); 
　　var time = Math.floor(date / (1000 * 60 * 60 * 24)); 
　　if (time &gt;= 0) ;
document.write(&quot;&lt;li&gt;&lt;font color=#DEDBDE&gt;现在离2006年&quot;+times+&quot;还有: &lt;font color=#ffffff&gt;&lt;b&gt;&quot;+time +&quot;&lt;/b&gt;&lt;/font&gt; 天&lt;/font&gt;&lt;/li&gt;&quot;);
// End --&gt;
&lt;/Script&gt;
</pre>
<p>第五种：最简倒计时二</p>
<p>HTML代码:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;mce:script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;&lt;!--
function djs(){
var urodz= new Date(&quot;11/12/2008&quot;);　
var now = new Date();
var num
var ile = urodz.getTime() - now.getTime();　　
var dni = Math.floor(ile / (1000 * 60 * 60 * 24));　　
if (dni &gt;1)　　
num=dni+1
else if (dni == 1)　num=2　
else if (dni == 0)　num=1
else num=0　
document.write(num)　　
}
// --&gt;&lt;/mce:script&gt;

距某某开幕式还有 &#x5B;&lt;mce:script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;&lt;!--
djs()
// --&gt;&lt;/mce:script&gt;] 天
</pre>
<p>第六种：Javascript倒计时器 &#8211; 采用系统时间自校验</p>
<pre class="brush: xml; title: ; notranslate">
这次利用系统时间自校验倒计时, 无需手工调校使得倒计时更为精确, 代码及详细注释如下:

&lt;span id=&quot;clock&quot;&gt;00:01:11:00&lt;/span&gt;
&lt;input id=&quot;startB&quot; type=&quot;button&quot; value=&quot;start countdown!&quot; onclick=&quot;run()&quot;&gt;
&lt;input id=&quot;endB&quot; type=&quot;button&quot; value=&quot;stop countdown!&quot; onclick=&quot;stop()&quot;&gt;
&lt;br&gt;
&lt;input id=&quot;diff&quot; type=&quot;text&quot;&gt;
&lt;input id=&quot;next&quot; type=&quot;text&quot;&gt;
&lt;mce:script language=&quot;Javascript&quot;&gt;&lt;!--
/* 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 = &quot;00:00:00:00&quot;;
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(&quot;onTimer()&quot;, 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(&quot;time is up!&quot;);
  return;
}

var hms = new String(start).split(&quot;:&quot;);
var ms = new Number(hms&#x5B;3]);
var s = new Number(hms&#x5B;2]);
var m = new Number(hms&#x5B;1]);
var h = new Number(hms&#x5B;0]);
  
ms -= 10;
if (ms &lt; 0)
{
  ms = 90;
  s -= 1;
  if (s &lt; 0)
  {
    s = 59;
    m -= 1;
  }
  
  if (m &lt; 0)
  {
    m = 59;
    h -= 1;
  }
}

var ms = ms &lt; 10 ? (&quot;0&quot; + ms) : ms;
var ss = s &lt; 10 ? (&quot;0&quot; + s) : s;
var sm = m &lt; 10 ? (&quot;0&quot; + m) : m;
var sh = h &lt; 10 ? (&quot;0&quot; + h) : h;

start = sh + &quot;:&quot; + sm + &quot;:&quot; + ss + &quot;:&quot; + 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 + &quot;-&quot; + elapseSecs + &quot;=&quot; + diffSecs;
next.value = &quot;nextelapse = &quot; + nextelapse;
if (nextelapse &lt; 0) nextelapse = 0;

// 启动新的定时器
timer = window.setInterval(&quot;onTimer()&quot;, nextelapse); 
}
// --&gt;&lt;/mce:script&gt;
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>javascript简单实现选项卡</title>
		<link>https://www.mudbest.com/%e9%80%89%e9%a1%b9%e5%8d%a1javascript/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 18 Jan 2011 09:43:21 +0000</pubDate>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[选项卡]]></category>
		<guid isPermaLink="false">http://blog.mudbest.com/?p=308</guid>

					<description><![CDATA[javascript简单实现选项卡 JS： &#60;script type=&#34;text/javasc...]]></description>
										<content:encoded><![CDATA[<p>javascript简单实现选项卡<span id="more-308"></span></p>
<p>JS：</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
function setTab(name,cursel,n)
{
for(i=1;i&lt;=n;i++)
{
var menu=document.getElementById(name+i);
if(menu)
{
var con=document.getElementById(&quot;con_&quot;+name+&quot;_&quot;+i);
menu.className= i==cursel?&quot;hover&quot;:&quot;&quot;;
con.style.display= i==cursel?&quot;block&quot;:&quot;none&quot;;
}
}
}
//--&gt;
&lt;/script&gt;﻿
</pre>
<p>HTML:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;menus&quot;&gt;
&lt;ul id=&quot;menu_navs&quot;&gt;
&lt;!--{loop $_G&#x5B;'setting']&#x5B;'u'] $nav}--&gt;
&lt;LI id=&quot;navsx{$nav&#x5B;'i']}&quot; onMouseOver=&quot;setTab('navsx',{$nav&#x5B;'i']},15)&quot;&gt;&lt;A id=wanggouhuisuo href=&quot;$nav&#x5B;url]&quot; target=&quot;_blank&quot; &gt;$nav&#x5B;name]&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;/LI&gt;
&lt;!--{/loop}--&gt;

&lt;/ul&gt;

&lt;div id=&quot;menu_cons&quot;&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;span style=&quot;float: left; line-height: 22px; color: rgb(244, 116, 35); margin-left: 12px;&quot;&gt;推荐栏：&lt;/span&gt;
&lt;!--{loop $_G&#x5B;'setting']&#x5B;'u1'] $k $nav1}--&gt;

&lt;!--{if $nav1&#x5B;val] == 1}--&gt;
&lt;UL style=&quot;DISPLAY: block&quot; id=&quot;con_navsx_$nav1&#x5B;val]&quot;&gt;
&lt;!--{else}--&gt;
&lt;UL style=&quot;DISPLAY: none&quot; id=&quot;con_navsx_$nav1&#x5B;val]&quot;&gt;
&lt;!--{/if}--&gt;
&lt;!--{loop  $nav1&#x5B;uk]  $nav2}--&gt;
&lt;LI&gt;&lt;A href=&quot;&lt;!--{$nav2&#x5B;url]}--&gt;&quot;  target=_blank&gt;&lt;SPAN&gt;&lt;!--{$nav2&#x5B;name]}--&gt;&lt;/SPAN&gt;&lt;/A&gt; &lt;/LI&gt;

&lt;!--{/loop}--&gt;
&lt;/UL&gt;
&lt;!--{/loop}--&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</pre>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
