topcat姍舞之間的極度凝聚

分享...是知識累積的開始....(Microsoft ASP/ASP.NET MVP)


My Links

Blog Stats

News

搬家公告:
未來小喵的文章會以點部落為主。
http://www.dotblogs.com.tw/topcat/
小鋪也會同步貼過來。不過在排版上能會比較沒有兼顧到。歡迎舊雨新知多多支持。 有與小喵交換網址或者訂閱的人,也建議連到那邊去。



目前線上人數:

隨筆分類

每月文章

影像集

其他部落格

工具網站

技術論壇

線上教學

語言學習

Thursday, August 21, 2008 #

上次提到jQuery開始勾引小喵後,在開發過程中,總覺得少了些什麼。沒錯,在被VS的Intellisense寵壞後的小喵,沒有這個實在有點痛苦。之前網友有篇在VS 2008 使用JQuery 自動提示( Intellisense) 提到不過在中文的VS2008還是無法使用。不過自從更新了SP1後,這一切問題改善了。

使用有幾個必要的條件:

  1. VS2008 SP1:有需要的人可以到這裡下載
  2. jQuery程式庫:當然去官方網頁下載最新的囉
  3. jQuery Intellisense擋:Intellisense

以上的條件必須是同時具備才能使用唷。

使用方式:

首先要把jQuery與jQuery Intellisense放到你的畫面中引用

    <script src="js/jquery.js" type="text/javascript"></script>
    <script src="js/JQuery.Intellisense.js" type="text/javascript"></script>

 

接著,就能夠看到囉

jq01

享受吧!!

posted @ 3:53 PM | Feedback (0)

Friday, August 08, 2008 #

這個範例是使用jQuery 的.ajax,從Yahoo新聞的Rss擷取後,產生超連結在自己的網頁中。測試的時候只需要一個html與jQuery.js即可。

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<Script Language="JavaScript" type="text/javascript" Src="jQuery.js"></Script>
<Script Language="JavaScript">
<!--
$(document).ready(function(){
    $('#button1').click(function(){
        var strURL='http://tw.news.yahoo.com/rss/tech_3c';
        $.ajax({
            type:'GET',
            dataType:'xml',
            url:strURL,
            success:function(xml){
                var myTitle;
                var myLink;
                $('item',xml).each(function(e){
                    myTitle=$('title',this).text();
                    myLink=$('link',this).text();
                    $('<a/>').attr('href',myLink).attr('target','_blank').text(myTitle).appendTo($('#div1'));
                    $('<br/>').appendTo($('#div1'));
                });
                alert($('#div1').html());
            }
        })
    })
})

//-->
</Script>
<TITLE></TITLE>
</HEAD>
<body onbeforeunload="RunOnBeforeUnload()">
<FORM action="" method=POST id=form1 name=form1>
<INPUT type="button" value="Button" id=button1 name=button1>
</FORM>
<div id="div1"></div>
</BODY>
</HTML>
posted @ 1:39 PM | Feedback (1)

Friday, July 25, 2008 #

來源:http://www.wujianrong.com/archives/2006/11/javascripturlencodeurldecode.html

<script language="javascript">
//可參考資料 http://www.wujianrong.com/archives/2006/11/javascripturlencodeurldecode.html
/*這裡開始 UrlEncode、UrlDecode 函數*/ 
function UrlEncode(str){ 
  var ret=""; 
  var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
  var tt= "";

  for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
    var c=str2asc(chr); 
    tt += chr+":"+c+"n"; 
    if(parseInt("0x"+c) > 0x7f){ 
      ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
    }else{ 
      if(chr==" ") 
        ret+="+"; 
      else if(strSpecial.indexOf(chr)!=-1) 
        ret+="%"+c.toString(16); 
      else 
        ret+=chr; 
    } 
  } 
  return ret; 
} 

function UrlDecode(str){ 
  var ret=""; 
  for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
    if(chr == "+"){ 
      ret+=" "; 
    }else if(chr=="%"){ 
     var asc = str.substring(i+1,i+3); 
     if(parseInt("0x"+asc)>0x7f){ 
      ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
      i+=5; 
     }else{ 
      ret+=asc2str(parseInt("0x"+asc)); 
      i+=2; 
     } 
    }else{ 
      ret+= chr; 
    } 
  } 
  return ret; 
}
</script>
posted @ 11:16 AM | Feedback (1)

緣起

    小喵經常會在各個技術blog中閒逛,有次逛到黑暗執行緒大大的網站,看到了一篇【jQuery, I LOVE YOU~~~】文章,文章中說了他發給【ASP.NET AJAX Client Library】好人卡,並且移情別戀轉而跟【jQuery】在一起的經過。讓小喵留下了深刻的印象。不過,這時小喵還是不曉得jQuery是什麼。

    後來有次小喵剛好要買幾本書,在逛【書店】的時候的時候(小喵目前已經很少跑真正的書店,逛得只是書店的網站),還差一點就可免運費,所以順便找找看是否有什麼新書可以買。剛好看到jQuery有本新的中文書出版。於是小喵就把它放入購物車。從此開始與jQuery結緣。本來買了書後,打算先翻翻看看這個東西到底是什麼,能讓黑暗執行緒大大隊ASP.NET AJAX  Client Library發出好人卡。沒想到這個迷死人不償命的小寶貝,竟然開始勾引小喵。

 

jQuery是什麼??

    jQuery是一組JavaScript的library,而且是免費的library。使用的時候也只需要指定<Script src="jQuery.js"></Script>就可以開始引用了。因此無論是用什麼樣的網頁開發程式(ASP,ASP.NET,JSP,PHP,CGI,....),甚至只需要HTML就可以使用。因此要測試jQuery,甚至不必上網,只需要記事本撰寫html就可以測試使用了。

 

下載

    先說明要準備使用jQuery之前,需要些什麼:

首先需要把jQuery帶回家。有個繁體中文的網址【jQuery: 寫得少, 做得多, JavaScript 程式庫】不過也僅止於這麼少少的幾頁,可以把最新版本的jQuery下載回來。下載的部分他分為三種:

  1. GZip的版本(Minified):js經過GZip壓縮過,檔案最小,適合放在正式環境中,1.26版大約16kb
  2. 未壓縮版本(Uncompressed):適用於測試開發學習。1.26版大約97kb
  3. 包裝版(Packed):給沒有辦法解GZip瀏覽器用的版本1.26版大約30kb

其實就算是使用Uncompressed的版本,大小也只有97kb,檔案非常的小(可能網頁中隨便一張圖就比這個大了)。而小喵自己則是取中庸的Packed版本使用。

 

測試

    接下來開始重頭戲,我們初體驗的實際運作範例。也開始體驗一下為何這個小東西會勾引小喵的原因。首先來個範例,小喵產生一個html檔案在畫面上安排了個兩個按鈕(<input type="button")以及一個img並且指向一個jpg。

現在假設要設定,一開始要把img1圖形隱藏,按下按鈕後,希望可以把他顯示出來,再按一次按鈕,又可以把他隱藏。這個對於已經熟悉JavaScript的人,應該不難。小喵寫個簡單的

<html>
<head>

<script Language="JavaScript">
<!--

function window_onload(){
	var img1=window.document.getElementById('img1');
	img1.style.display='none';
}

function btn1_click(){
	var img1=window.document.getElementById('img1');
	if(img1.style.display=='none')
	{
		img1.style.display='';
	}
	else
	{
		img1.style.display='none';
	}
}

//-->
</script>
</head>
<body onload="window_onload()">
	<input type="button" id="btn1" name="btn1" value="JavaScript按鈕" onclick="btn1_click()" />
	<br />
	<img id="img1" src="topcat.jpg" />
</body>
</html>

而以上的動作,如果希望由jQuery來處理的話,那又如何呢

<html>
<head>
<Script Language="JavaScript" src="jQuery.js"></Script>
<script Language="JavaScript">
<!--
$(document).ready(function(){
	$('#img1').hide();
	$('#btn2').click(function(){
		$('#img1').toggle();
	})
})

//-->
</script>
</head>
<body>
	<input type="button" id="btn2" name="btn2" value="jQuery按鈕" />
	<br />
	<img id="img1" src="topcat.jpg" />
</body>
</html>

一樣的動作,發現了嗎??程式碼精簡到不行。真是太神奇了!!

再來另外一個範例

假設我的畫面中有一個<table>希望,<table>裡面的資料在顯示的時候,可以用不同底色交錯顯示,這樣方便在瀏覽的時候可以方便看。我們用固定的<table>當作示範,我們希望讓偶數行能夠加上class,這樣的要用Javascript有多麻煩各位可以想像一下。但是在jQuery來說確是很簡單的

我們有Style設定

<style>
.TrEven1{background-color:pink;}
.TrEven2{background-color:blue;color:white;}
</style>

在畫面中有兩個Table小喵用asp的方式表式:

table1
<table id="tbl1" border="1">
<%For y = 1 to 10%>
	<tr>
		<td><%=y%></td>
		<td>aa</td>
		<td>bb</td>
		<td>cc</td>
		<td>dd</td>
		<td>ee</td>
		<td>ff</td>
	</tr>
<%Next%>
</table>
table2
<table id="tbl2" border="1">
<%For y2 = 1 to 10%>
	<tr>
		<td><%=y2%></td>
		<td>aa</td>
		<td>bb</td>
		<td>cc</td>
		<td>dd</td>
		<td>ee</td>
		<td>ff</td>
	</tr>
<%Next%>
</table>

接著,先想像一下如果要用JavaScript要怎麼寫??然後再來看看用jQuery怎麼做

$(document).ready(function(){
	$('#tbl1 tr:even').addClass('TrEven1');
	$('#tbl2 tr:even').addClass('TrEven2');
})

看到了他的魔力了嗎??短短的一行【$('#tbl1 tr:even').addClass('TrEven1');】就可以處理了耶!!有沒有那種被【黯然消魂掌】擊中的感覺。

 

初體驗就到此先告一段落,有機會在跟網友們分享jQuery的語法與使用方式。在此先介紹個不錯的網站,可以把他當作是jQuery使用時的一個操作說明【http://jquery.org.cn/visual/cn/index.xml

posted @ 10:16 AM | Feedback (1)

Monday, July 07, 2008 #

今天同事問到,他使用replace在Client端處理字串,結果發現處理的時候,卻只有置換的符合的第一個,後面都沒有。舉個例子:例如小喵要把連續兩個aa的字串轉成AA假設文章中有3處需置換:

文章aa置換aa範例aa說明

撰寫程式碼:

var s=s.replace('aa','AA');

乍看下程式碼似乎沒什麼問題,不過去查了一下JavaScript中replace的用法,其實第一個參數應該是regx的方式

因此如果改為

var s=s.replace(/\你要置換的字串/g,'AA');

這樣就可以正確的把所有符合的字串置換完成了!!

posted @ 9:49 AM | Feedback (0)