<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/main.xsl"?>
<b:blog xmlns="http://www.w3.org/1999/xhtml" xmlns:b="http://blog.othree.net"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://blog.othree.net http://blog.othree.net/blooog.xsd">
	<b:blogTitle>O3noBLOG</b:blogTitle>
	<b:blogDescription></b:blogDescription>
	<b:entries>
		<b:entriesMeta>
			<b:listType>c</b:listType>
			<b:listData listID="script">script</b:listData>
		</b:entriesMeta>

		<b:entry entryID="000517" baseName="birthday-ui">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-05-30</b:date>
				<b:time>00:54:08</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>輸入出生日期～</b:title>
			<b:content>
				<b:summary>因為每次要在網路上輸入出生日期都覺得很麻煩，尤其是遇到用下拉式選單來選出生年和出生日的時候，所以我思考一陣子後設計了一個使用者介面來輸入出生日期，只要用滑鼠點個三四下就可以了^^，基本上這是做給jFormino的，所以在jFormino未來釋出的版本裡面會包含這個輸入元件，不過我作的雛形已經很好套用了，等不及的可以研究一下code自己拿去用。 補充：現在這個Style是hlb修改過的。...</b:summary>
				<b:mainContent><p>因為每次要在網路上輸入出生日期都覺得很麻煩，尤其是遇到用下拉式選單來選出生年和出生日的時候，所以我思考一陣子後設計了一個<a href="http://othree.net/projects/birthday/">使用者介面</a>來輸入出生日期，只要用滑鼠點個三四下就可以了^^，基本上這是做給<a href="http://st.handlino.com/hdc/index.cgi?jformino">jFormino</a>的，所以在jFormino未來釋出的版本裡面會包含這個輸入元件，不過我作的雛形已經很好套用了，等不及的可以研究一下code自己拿去用。</p>

<p><a href="http://blog.othree.net/log/2008/05/30/birthday-ui/birthday.png"><img alt="" src="http://blog.othree.net/log/2008/05/30/birthday-ui/birthday-thumb-400x288.png" width="400" height="288" /></a></p>

<p class="update">補充：現在這個Style是<a href="http://hlb.yichi.org/blog/">hlb</a>修改過的。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="11"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000506" baseName="javascript-debug-test">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-04-06</b:date>
				<b:time>22:27:29</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>除錯與測試 JavaScript</b:title>
			<b:content>
				<b:summary>有多麻煩，一圖勝千言啊！ 我同時開了Firefox、Safari、Opera、IE*2共五個瀏覽器視窗，每次修改完五個都要測試，因為已經過了開發階段，不能只看一個瀏覽器的結果了。...</b:summary>
				<b:mainContent><p>有多麻煩，一圖勝千言啊！</p>

<p><a href="http://blog.othree.net/log/2008/04/06/javascript-debug-test/debug-js.png"><img alt="為了測試和除錯開了五個瀏覽器" src="http://blog.othree.net/log/2008/04/06/javascript-debug-test/debug-js-thumb-400x250.png" width="400" height="250" /></a></p>

<p>我同時開了Firefox、Safari、Opera、IE*2共五個瀏覽器視窗，每次修改完五個都要測試，因為已經過了開發階段，不能只看一個瀏覽器的結果了。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000505" baseName="lightlightbox">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-04-06</b:date>
				<b:time>11:40:04</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>lightlightbox</b:title>
			<b:content>
				<b:summary>好一陣子沒寫新東西了，前陣子其實在把一些舊的Script重新寫過，像是hiddenlinks（想到新名字後才會放出:P）和這裡的表單檢查等等，主要是想脫離jQuery，當然不是嫌它不好，而是覺得自己blog的東西不用特別用jQuery來縮減開發時間，而且寫好的東西大部分都還會公開出來。其中最後要處理的就是lightbox特效，我之前是用thickbox這個套件，本來是想改用FancyZoom，不過他的縮放特效遇到一些特定情況時會變很慢，最早的lightbox又不是用DOM方法來處理，在XHTML 1.1下無用武之地，更不用說2.0用了prototype，最後我決定自己寫一個lightbox，完成後我把它取名為lightlightbox，因為真的很輕量，程式碼不到100行XD。 想看效果的可以直接點這，如果不想開在lightbox裡面，可以壓著ctrl或alt鍵再點擊。全部是三個檔案，一個js檔，一個讀取中的gif動畫檔，一個關閉按鈕的圖檔，讀取中的gif動畫我是用Ajax Loading Gif Generator做的，關閉按鈕的圖則是先用FancyZoom的那張，和蘋果網站上用的很像，因為權利問題我不直接提供連結。在功能上預設是把所有連到jpg、jpeg、gif、png這四種檔案的連結都套上lightbox特效，另外也可以設定classFilter來判斷class，變成可以用class來決定哪些連結要有lightbox，哪些不要，檔案下載： llbox.js loading.gif 另外有一個fade in/out版的： llbox.js 使用前先記得修改llbox.js裡面的讀取中動畫和關閉按鈕的圖檔位置，目前版本在IE7、Firefox 3 beta5、Safari 3.1、Opera 9.26上測試過都沒問題。有兩個已知問題，一是png圖在IE6以前的版本會有透明色的問題，另一個是鍵盤控制沒有處理，等修正後會放出1.1版。 更新：結果今天就花時間把兩個問題都處理完了，更新版的檔案在原位置。...</b:summary>
				<b:mainContent><p>好一陣子沒寫新東西了，前陣子其實在把一些舊的Script重新寫過，像是<a href="http://blog.othree.net/log/2005/09/19/hiddenlinks-2/">hiddenlinks</a>（想到新名字後才會放出:P）和這裡的表單檢查等等，主要是想脫離<a href="http://jquery.com">jQuery</a>，當然不是嫌它不好，而是覺得自己blog的東西不用特別用jQuery來縮減開發時間，而且寫好的東西大部分都還會公開出來。其中最後要處理的就是lightbox特效，我之前是用<a href="http://jquery.com/demo/thickbox/">thickbox</a>這個套件，本來是想改用<a href="http://www.cabel.name/2008/02/fancyzoom-10.html">FancyZoom</a>，不過他的縮放特效遇到一些特定情況時會變很慢，最早的<a href="http://www.huddletogether.com/projects/lightbox/">lightbox</a>又不是用DOM方法來處理，在XHTML 1.1下無用武之地，更不用說2.0用了prototype，最後我決定自己寫一個lightbox，完成後我把它取名為lightlightbox，因為真的很輕量，程式碼不到100行XD。</p>

<p>想看效果的可以直接點<a href="http://othree.net/projects/lightlightbox/DSCF5940.JPG">這</a>，如果不想開在lightbox裡面，可以壓著ctrl或alt鍵再點擊。全部是三個檔案，一個js檔，一個讀取中的gif動畫檔，一個關閉按鈕的圖檔，讀取中的gif動畫我是用<a href="http://www.ajaxload.info/">Ajax Loading Gif Generator</a>做的，關閉按鈕的圖則是先用FancyZoom的那張，和蘋果網站上用的很像，因為權利問題我不直接提供連結。在功能上預設是把所有連到jpg、jpeg、gif、png這四種檔案的連結都套上lightbox特效，另外也可以設定classFilter來判斷class，變成可以用class來決定哪些連結要有lightbox，哪些不要，檔案下載：</p>


<ul>
<li><a href="http://othree.net/projects/lightlightbox/llbox.js">llbox.js</a></li>
<li><a href="http://othree.net/projects/lightlightbox/loading.gif">loading.gif</a></li>
</ul>



<p>另外有一個fade in/out版的：</p>


<ul>
<li><a href="http://othree.net/projects/lightlightbox-fade/llbox.js">llbox.js</a></li>
</ul>



<p>使用前先記得修改llbox.js裡面的讀取中動畫和關閉按鈕的圖檔位置，目前版本在IE7、Firefox 3 beta5、Safari 3.1、Opera 9.26上測試過都沒問題。<del>有兩個已知問題，一是png圖在IE6以前的版本會有透明色的問題，另一個是鍵盤控制沒有處理</del>，等修正後會放出1.1版。</p>

<p class="update">更新：結果今天就花時間把兩個問題都處理完了，更新版的檔案在原位置。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000498" baseName="addevent">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-03-20</b:date>
				<b:time>23:27:21</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>addEvent()</b:title>
			<b:content>
				<b:summary>Dean Edwards寫的這個函式一直是我愛用的檔案，可以在各種瀏覽器上都正常的處理事件的指派，一般而言，事件的指派除了IE的attachEvent和W3C的addEventListenr外，還有一個最傳統的方法就是直接設定該elementNode的屬性，要指派click事件就可以寫成elem.onclick = func;，不過這個方法有個缺點是一個element的同一種事件只能指定一個function，因此一般而言都還是會使用attachEvent和addEventListener。...</b:summary>
				<b:mainContent><p><a href="http://dean.edwards.name/">Dean Edwards</a>寫的這個函式一直是我愛用的檔案，可以在各種瀏覽器上都正常的處理事件的指派，一般而言，事件的指派除了IE的attachEvent和W3C的addEventListenr外，還有一個最傳統的方法就是直接設定該elementNode的屬性，要指派click事件就可以寫成<code>elem.onclick = func;</code>，不過這個方法有個缺點是一個element的同一種事件只能指定一個function，因此一般而言都還是會使用attachEvent和addEventListener。</p></b:mainContent>
				<b:extendContent><p>不過在2005年八月的時候Peter-Paul Koch發現attachEvent的兩個問題，發表在<a href="http://www.quirksmode.org/blog/archives/2005/08/addevent_consid.html">addEvent() considered harmful</a>這篇文章裡，他發現的兩個問題分別是可能會造成記憶體缺漏和<code>this</code>這個關鍵字的錯誤定義，正常來說this應該是指事件指派的element，但是attachEvent卻會讓他變成window這個物件，而在這篇文章之後，他就舉辦了一次比賽希望有人能解決這個問題。</p>

<p>Dean Edwards就是在這時候寫了<a href="
http://dean.edwards.name/my/events.js">events.js</a>這個檔案的，其實我一直以為Dean Edwards就是這次比賽的勝者了，直到昨天我才發現勝者其實是John Resig，jQuery的開發者，同時也是Pro Javascript Technique的作者，他寫出來的code非常精簡，只有15行，不過有些小缺憾，Koch還有簡單修改過，放在<a href="http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html">... and the winner is ...</a>這篇文章裡，他的script可以解決上面提到的問題，但是他至少要瀏覽器支援addEventListener或attachEvent其中一個function，像是Mac版的IE5就剛好兩邊都不支援，用這個script就會沒反應，因此我還是比較喜歡Dean Edwards的版本，他的版本則是addEventListener和傳統方法擇一，因此即使兩個function都不支援，還是可以正常運作，根據測試，連IE4和NN4都可以用，唯一的問題是還有多少人會用這兩款瀏覽器了XD。</p>

<p>其他補充一下：IE7正式版還是沒支援addEventListener。</p></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000484" baseName="move-smoothly-2">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-01-18</b:date>
				<b:time>01:41:27</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>讓你的特效更平順之二</b:title>
			<b:content>
				<b:summary>之前我曾經發表過一篇如何讓你的特效更平順，那時候用的方法是每次function內檢查時間變化，然後決定這時候應該在哪個位置，那時候這方法效果大概已經不錯了，不過我這兩天看Pro JavaScript Techniques，裡面的範例使用的方法看起來會更順暢，他的原理是一開始就把每個時間點要做的動作一口氣設定好，接下來就沒有interval的問題，也不用檢查時間變化，當然也不會有配合setTimeout使用遞迴時的延遲問題，重點部份範例如下： for ( var i = 0; i &lt;= 100; i += 5 ) { (function () { var pos = i; setTimeout(function () { elem.style.height = ( ( pos / 100) * h ) + &quot;px&quot;; },...</b:summary>
				<b:mainContent><p>之前我曾經發表過一篇<a href="http://blog.othree.net/log/2005/09/26/move-smoothly/">如何讓你的特效更平順</a>，那時候用的方法是每次function內檢查時間變化，然後決定這時候應該在哪個位置，那時候這方法效果大概已經不錯了，不過我這兩天看Pro JavaScript Techniques，裡面的範例使用的方法看起來會更順暢，他的原理是一開始就把每個時間點要做的動作一口氣設定好，接下來就沒有interval的問題，也不用檢查時間變化，當然也不會有配合setTimeout使用遞迴時的延遲問題，重點部份範例如下：</p><pre><code>for ( var i = 0; i &lt;= 100; i += 5 ) {
    (function () {
        var pos = i;
        setTimeout(function () {
            elem.style.height = ( ( pos / 100) * h ) + &quot;px&quot;;
        }, ( pos +1 ) * 10 );
    })();
}</code></pre><p>這是一個slide down的效果，直接設定好分21次調整元素高度，每次間隔50微秒，這樣子就可以產生順暢的動畫效果了。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000482" baseName="ie7-20-beta">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2008-01-09</b:date>
				<b:time>15:39:50</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>IE7 2.0</b:title>
			<b:content>
				<b:summary>IE7前陣子推出了新版了，這次變成有兩個js檔案，IE7.js和IE8.js，我一開始還以為IE7.js是加強Internet Explorer 7 的功能，然後就在想IE8.js是幹麻用的，結果其實IE7.js是補強Internet Explorer 5.5和6.0用的檔案，IE8.js則是提供一些Internet Explorer 7也還沒實作的功能，大部分是CSS相關的，詳細的功能清單可以在Demo頁面看到，其中我比較注意到的是min-height和max-height似乎也成功弄好了，這可是之前唯一被標上沒辦法做到的項目啊。另外半透明png則變成只會對檔名是-trans.png結尾的才會修正，還可以直接連接google code上的檔案，更新點不少。 而分成兩個檔案的好處是可以使用condition commet把不同版本的Internet Explorer分開，Internet Explorer 7就不需要去讀取IE7.js，只執行他需要的部份，而且程式排除一些很少用到的功能後變得更小，加上換了新的query engine，整體的速度應該提昇了不少，不過我還沒針對這點測試過，之前有在使用的可以更新看看。...</b:summary>
				<b:mainContent><p><a href="http://dean.edwards.name/weblog/2008/01/ie7-2/"><span class="caps">IE7</span></a>前陣子推出了新版了，這次變成有兩個js檔案，<strong><span class="caps">IE7.</span>js</strong>和<strong><span class="caps">IE8.</span>js</strong>，我一開始還以為IE7.js是加強Internet Explorer 7 的功能，然後就在想IE8.js是幹麻用的，結果其實IE7.js是補強Internet Explorer 5.5和6.0用的檔案，IE8.js則是提供一些Internet Explorer 7也還沒實作的功能，大部分是CSS相關的，詳細的功能清單可以在<a href="http://ie7-js.googlecode.com/svn/test/index.html">Demo頁面</a>看到，其中我比較注意到的是min-height和max-height似乎也成功弄好了，這可是之前唯一被標上沒辦法做到的項目啊。另外半透明png則變成只會對檔名是<strong>-trans.png</strong>結尾的才會修正，還可以直接連接google code上的檔案，更新點不少。</p>

<p>而分成兩個檔案的好處是可以使用condition commet把不同版本的Internet Explorer分開，Internet Explorer 7就不需要去讀取IE7.js，只執行他需要的部份，而且程式排除一些很少用到的功能後變得更小，加上換了新的query engine，整體的速度應該提昇了不少，不過我還沒針對這點測試過，之前有在使用的可以更新看看。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000476" baseName="google-analytic-and-xhtml-11">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2007-12-15</b:date>
				<b:time>01:31:57</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>Google Analytic更新、XHTML 1.1對應方法</b:title>
			<b:content>
				<b:summary>今天一早就看到消息，gslin那也提供了兩個比較重要的連結，一個官方新聞稿，另一個是Google Blogscoped直接介紹如何修改頁面中的script，我看了一下發現到在第一個script標籤內使用了document.write這個方法來修改頁面，不過我這用的是嚴謹到不知所謂的XHTML 1.1，只能使用DOM來做文件樹的修改，所以我研究了一下，了解到他其實只是在判斷網站是不是用ssl連線的，如果是用ssl連線的網站，就使用ssl連線來取得遠端的analytic程式碼，這樣可以避免瀏覽器跑出訊息問訪客是不是要存取非ssl連線的物件。當然我這沒有用到ssl連線，所以我可以直接把他指定成一般連線的位置，變成下面這樣： &lt;script src="http://www.google-analytics.com/ga.js" type="text/javascript"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; &lt;![CDATA[ var pageTracker = _gat._getTracker("UA-YOURNUMBER-1"); pageTracker._initData(); pageTracker._trackPageview(); ]]&gt; &lt;/script&gt;...</b:summary>
				<b:mainContent><p>今天一早就看到消息，<a href="http://blog.gslin.org/archives/2007/12/14/1385/">gslin</a>那也提供了兩個比較重要的連結，一個官方新聞稿，另一個是<a href="http://blogoscoped.com/archive/2007-12-13-n83.html">Google Blogscoped</a>直接介紹如何修改頁面中的script，我看了一下發現到在第一個script標籤內使用了<strong>document.write</strong>這個方法來修改頁面，不過我這用的是嚴謹到不知所謂的XHTML 1.1，只能使用DOM來做文件樹的修改，所以我研究了一下，了解到他其實只是在判斷網站是不是用ssl連線的，如果是用ssl連線的網站，就使用ssl連線來取得遠端的analytic程式碼，這樣可以避免瀏覽器跑出訊息問訪客是不是要存取非ssl連線的物件。當然我這沒有用到ssl連線，所以我可以直接把他指定成一般連線的位置，變成下面這樣：</p><pre><code>&lt;script src="http://www.google-analytics.com/ga.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
&lt;![CDATA[
var pageTracker = _gat._getTracker("UA-YOURNUMBER-1");
pageTracker._initData();
pageTracker._trackPageview();
]]&gt;
&lt;/script&gt;</code></pre></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="2"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000466" baseName="unobtrusive-javascript">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2007-10-10</b:date>
				<b:time>22:08:29</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>不亂入的javascript</b:title>
			<b:content>
				<b:summary>在Web Accessibility第十章裡談的是JavaScript的親和力問題，我看之前其實就在懷疑JavaScript要如製造親和力，果不其然，這章主要是在說JavaScript套用到網頁時，要注意哪些地方，避免影響到親和力，例如彈出式視窗的連結目標不要用javascript://，而是開啟網頁的真正位置，而考量到各種狀況，其中很重要的一部份是unobtrusive JavaScript（譯做不亂入的JavaScript），不過要先強調的是這只是其中一部分，還有一些觀念和思考方向本文沒說。 Unobtrusive JavaScript不是什麼新的語言，而是JavaScript的一種撰寫風格（coding style），最大的特色是在HTML的原始碼內你看不到JavaScript程式碼，不會有像是&lt;a href=&quot;#&quot; onclick=&quot;return popup();&quot;/&gt;這樣的東西出現，取而代之的，如果要對特定物件指定事件，那就用DOM來尋找你的目標物件，整個HTML文件保持在沒有JavaScript也是功能完整的狀況。 這樣的撰寫風格可以確保不會影響到使用不支援JavasSript瀏覽器的訪客，也可以讓HTML文件和JavaScript分的更徹底，方便更新維護，好處不少，不過相對的要能完全寫到不亂入，也會需要較多的學習。...</b:summary>
				<b:mainContent><p>在Web Accessibility第十章裡談的是JavaScript的親和力問題，我看之前其實就在懷疑JavaScript要如製造親和力，果不其然，這章主要是在說JavaScript套用到網頁時，要注意哪些地方，避免影響到親和力，例如彈出式視窗的連結目標不要用<code>javascript://</code>，而是開啟網頁的真正位置，而考量到各種狀況，其中很重要的一部份是unobtrusive JavaScript（譯做不亂入的JavaScript），不過要先強調的是這只是其中一部分，還有一些觀念和思考方向本文沒說。</p>

<p>Unobtrusive JavaScript不是什麼新的語言，而是JavaScript的一種撰寫風格（coding style），最大的特色是在HTML的原始碼內你看不到JavaScript程式碼，不會有像是<code>&lt;a href=&quot;#&quot; onclick=&quot;return popup();&quot;/&gt;</code>這樣的東西出現，取而代之的，如果要對特定物件指定事件，那就用DOM來尋找你的目標物件，整個HTML文件保持在沒有JavaScript也是功能完整的狀況。</p>

<p>這樣的撰寫風格可以確保不會影響到使用不支援JavasSript瀏覽器的訪客，也可以讓HTML文件和JavaScript分的更徹底，方便更新維護，好處不少，不過相對的要能完全寫到不亂入，也會需要較多的學習。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="3"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000461" baseName="scroll_radio">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2007-09-18</b:date>
				<b:time>12:00:31</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>scroll radio</b:title>
			<b:content>
				<b:summary> 這兩天有個想法，就是用scroll bar來做radio輸入的選擇，可以用在評分之類（像是分五等級）的地方，剛好jQuery UI正式公開，就用它實做了，花了昨天一整晚加上今天早上，結果做完後發現不是很實用XD，因為直接過去點還是比較快，而做出點擊選取的功能後，就很少人會去用拖拉的方式來控制了，雖然說是如此，還是把做好的範例丟上來給大家看看。...</b:summary>
				<b:mainContent><p><img alt="" src="http://blog.othree.net/log/2007/09/18/scroll-radio/scroll-radio-screenshot.png" width="300" height="75" /></p>

<p>這兩天有個想法，就是用scroll bar來做radio輸入的選擇，可以用在評分之類（像是分五等級）的地方，剛好<a href="http://ui.jquery.com/">jQuery UI</a>正式公開，就用它實做了，花了昨天一整晚加上今天早上，結果做完後發現不是很實用XD，因為直接過去點還是比較快，而做出點擊選取的功能後，就很少人會去用拖拉的方式來控制了，雖然說是如此，還是把做好的<a href="http://blog.othree.net/log/2007/09/18/scroll-radio/scroll.html">範例</a>丟上來給大家看看。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="3"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

		<b:entry entryID="000433" baseName="jquery-1131">
			<b:author>
				<b:authorName>othree</b:authorName>
				<b:authorEmail>othree@gmail.com</b:authorEmail>
				<b:authorUrl></b:authorUrl>
			</b:author>
			<b:datetime>
				<b:date>2007-07-05</b:date>
				<b:time>21:34:41</b:time>
			</b:datetime>
			<b:category>script</b:category>
			<b:title>jQuery 1.131</b:title>
			<b:content>
				<b:summary>因為有重大bug，所以馬上就出新的fix版了～～。...</b:summary>
				<b:mainContent><p>因為有重大bug，所以馬上就出新的fix版了～～。</p></b:mainContent>
				<b:extendContent></b:extendContent>
			</b:content>

			<b:comments commentCount="0"></b:comments>


			<b:trackbacks trackbackCount="0"></b:trackbacks>

		</b:entry>

	</b:entries>
</b:blog>
