在Visual Studio 2010上市之前,MSDN文件庫做了一次改版,可以用很不習慣的方式來瀏覽MSDN文件庫,想不到在Visual Studio 2010上市之後,它本身內建的文件瀏覽程式也是以這種很不習慣的方式讓人瀏覽。
線上MSDN文件庫還好,修改設定就馬上變回原始樣式,但Visual Studio 2010強迫中獎,想改都沒得改。以前MSDN文件庫想安裝到本機,是要花錢買CD或DVD(買Visual Studio之類軟體會送給你),現在是可以直接下載安裝,對於不能上網的環境要查資料,就好像突然有人拿出3G網卡給你的感覺,很棒。
這又給我們一個很大啟發,當大家用的很習慣、非常習慣、超級習慣UI後,除非有明確的理由,不然,千萬不要去改UI,像之前fx改UI後,也是要罵的要命,MSDN文件庫和Visual Studio的幫助檢視器也差不多,而且帶頭罵的都是MVx級的大腳。
MSDN文件庫還好,因為能改設定,但Visual Studio本身的幫助檢視器就「ㄍㄧㄠ到臭頭」(台),不過事情最終還是有解,馬上有人發現了一個好用的H3Viewer,此程式你可以從Visual Studio Gallery或他們的網站http://mshcmigrate.helpmvp.com/viewer下載。
H3Viewer使用起來感覺良好,而且發現H3Viewer還支援多國語系,看了一下,就是沒人要翻譯H3Viewer.lang.cht,小弟英文不好,就當成英文作業吧。
H3Viewer正體中文語系檔,解壓縮後,與H3Viewer放置同一目錄。目前使用上會有亂碼的情況,我已經與作者連絡,請他幫助確認是軟體的問題,還是我的翻譯檔有問題,但使用上沒有問題。
以上請服用。
2010/12/30 晚間補充
作者很用心的回信,他回答說在英文作業系統上測試我給他的檔案是正常不會有亂碼。而我在公司的Windows 7及家中的Windows XP的繁體中文版作業系統都會出現?的亂碼,真是怪怪!
Reference:
網頁
▼
收不到客戶信件之Gmail
近期(一~二週),有許多同事反應會收不到客戶的信件,或是等了很久才會收到,後來幾經測試及查詢後,應是Gmail的問題。因為所有的來往的信件都與Gmail有關。
找了一下,Gmail有開一個「Gmail幫助論壇」(看了幾頁的留言,不太認為有官方人員在上面),如果你也有碰到這樣的問題,也請上去反應一下,試試看吧!
最早發佈者是2010-11-30日,但今天早上(2010-12-27日),公司有還使用者在問我「為什麼收不到客戶的信件」?我們的Mail Server怎麼了?
這我真不知道怎麼幫?
找了一下,Gmail有開一個「Gmail幫助論壇」(看了幾頁的留言,不太認為有官方人員在上面),如果你也有碰到這樣的問題,也請上去反應一下,試試看吧!
最早發佈者是2010-11-30日,但今天早上(2010-12-27日),公司有還使用者在問我「為什麼收不到客戶的信件」?我們的Mail Server怎麼了?
這我真不知道怎麼幫?
華碩網路雲端硬碟最新應用--Mear雲端音樂服務
之前我們介紹了「華碩雲端硬碟」與「華碩雲端硬碟軟體使用方法」兩篇,用了非常快速的時間,就爬上了我Blog瀏灠率的前幾名,那就快點再介紹一個華碩雲端硬碟的最新應用「Mear」,Mear是個雲端音樂服務,線上播放音樂沒什麼,但Mear直接與華碩雲端硬碟整合在一起後,就變的非常好玩。
當你註冊華碩雲端硬碟帳號登入Web後,
就你會發現在最旁邊多了一個有雲端音樂的Mear服務, 點入後,
點擊「我的雲端歌曲庫」,會直接去尋搜你的華碩雲端硬碟裡所有的音樂檔案。從右上方帳戶資訊旁的「設定」可指定要尋搜華碩雲端硬碟的目錄。
我的雲端歌曲庫找到歌曲後,會建立一個「長長長的List」,你可以在下方編輯「播放清單」,然後在「設定」下方,可以把「我的雲端歌曲庫」的List的歌曲,加到播放清單。
還有更強大分享功能,當你點選某一歌曲後,會看到後方有一個大大的F圖示,Mear可以直接將你要分享的歌曲分享給Facebook上的朋友們聽。
除了線上版,還有個人電腦Desktop與Android版本,這又更棒了,這讓我們可以在任何「我們的電腦、手機」來播放華碩Mear雲端歌曲庫中的音樂。
在下載Desktop右方有個圖示,請點擊安裝:
它是透過Adobe AIR運作。
上面可以切換語系,目前有英文及繁體中文。(這裡高興一下,終於有那種預設中文非簡體中文的軟體,沒辦法,人家人口多)
這裡必須要有華碩雲端硬碟的帳號才能使用Mear雲端音樂服務,所以快點來申請一組帳號吧。
跟WEB是統一的UI,這點很棒,基本上一模一樣。
Reference:
當你註冊華碩雲端硬碟帳號登入Web後,
就你會發現在最旁邊多了一個有雲端音樂的Mear服務, 點入後,
點擊「我的雲端歌曲庫」,會直接去尋搜你的華碩雲端硬碟裡所有的音樂檔案。從右上方帳戶資訊旁的「設定」可指定要尋搜華碩雲端硬碟的目錄。
我的雲端歌曲庫找到歌曲後,會建立一個「長長長的List」,你可以在下方編輯「播放清單」,然後在「設定」下方,可以把「我的雲端歌曲庫」的List的歌曲,加到播放清單。
還有更強大分享功能,當你點選某一歌曲後,會看到後方有一個大大的F圖示,Mear可以直接將你要分享的歌曲分享給Facebook上的朋友們聽。
除了線上版,還有個人電腦Desktop與Android版本,這又更棒了,這讓我們可以在任何「我們的電腦、手機」來播放華碩Mear雲端歌曲庫中的音樂。
在下載Desktop右方有個圖示,請點擊安裝:
它是透過Adobe AIR運作。
上面可以切換語系,目前有英文及繁體中文。(這裡高興一下,終於有那種預設中文非簡體中文的軟體,沒辦法,人家人口多)
這裡必須要有華碩雲端硬碟的帳號才能使用Mear雲端音樂服務,所以快點來申請一組帳號吧。
跟WEB是統一的UI,這點很棒,基本上一模一樣。
Mear雲端音樂使用心得
- 支援格式不足
目前華碩Mear雲端音樂僅支援*.mp3格式,其他常用格式如*.wma…等並未支援,希望未來能增加更多音樂格式的支援。我的歌曲庫裡*.mp3都是兒歌…@_@…我要*.wma啦! - 浪費頻寬
在Android有離線播放的功能,但在Desktop或Web版本未加入,你每播放一條歌曲,就會重新下載一次歌曲,下載速度約1MB ~ 2MB。 - 軟體未整合
目前華碩Mear雲端音樂與華碩雲端硬碟兩個Desktop軟體是獨立的,必須分開執行,這點麻煩了點。 - 整合性佳
目前使用起來,Mear加WebStorage整合的不錯,未來會不會再加上播放影片的功能呢?
Reference:
XHTML與CSS免費參考資料
Professional XHTML+CSS:網頁設計師的創意與實踐
我有買這本書,寫的不錯,也很簡單入門,雖然是掛Professional,但讀起來很容易進入狀況,不會生澀難懂, 基礎的XHTML到CSS都有完整的介紹,另外它還有一份附件的參考資料,內容整理的很不錯,非常合適拿來複習之用:
目錄:
下載:Professional XHTML+CSS:網頁設計師的創意與實踐 -- 附錄參考資料
備份:Professional XHTML+CSS:網頁設計師的創意與實踐 -- 附錄參考資料(for .7z)
Reference:
我有買這本書,寫的不錯,也很簡單入門,雖然是掛Professional,但讀起來很容易進入狀況,不會生澀難懂, 基礎的XHTML到CSS都有完整的介紹,另外它還有一份附件的參考資料,內容整理的很不錯,非常合適拿來複習之用:
目錄:
- XHTML元素、屬性一覽表
- 各瀏覽器支援之CSS規則一覽表
- 各瀏覽器支援之CSS選擇器一覽表
- 各瀏覽器支援之CSS屬性一覽表
- 瀏覽器的DOCTYPE Switch
下載:Professional XHTML+CSS:網頁設計師的創意與實踐 -- 附錄參考資料
備份:Professional XHTML+CSS:網頁設計師的創意與實踐 -- 附錄參考資料(for .7z)
Reference:
Ajax在非UTF-8傳送中文資料注意事項筆記
一般我自在寫Ajax程式時,會有兩個流程,
2. 由PageB.html回應處理結果,傳回文字(Text)、XML、json…等資料;
3. PageA.html由回應結果,進行畫面處理。
在處理一個非utf-8的網頁,如果你傳送或回應「含(正體、簡體)中文」的資料,那會很慘,因為PageA.html傳送給PageB.aspx的資料,會含一堆亂碼的資料,而PageB.aspx回應也是一堆亂碼。就程式而言,是沒有問題,因為只有顯示是亂碼,其他都正常。
造成亂碼的原因是Ajax使用的XMLHttpRequest元件預設使用utf-8來作業,所以在非utf-8的網頁使用Ajax要特別注意「中文」資料傳送及回應的問題。
這樣PageB.aspx就能接收到正確的資料。
當然最的方式就是PageA.html與PageB.aspx都使用utf-8,這樣最保險。
Reference:
- pageA.html --> ajax --> pageB.aspx
- pageA.html <-- ajax <-- PageB.aspx
2. 由PageB.html回應處理結果,傳回文字(Text)、XML、json…等資料;
3. PageA.html由回應結果,進行畫面處理。
在處理一個非utf-8的網頁,如果你傳送或回應「含(正體、簡體)中文」的資料,那會很慘,因為PageA.html傳送給PageB.aspx的資料,會含一堆亂碼的資料,而PageB.aspx回應也是一堆亂碼。就程式而言,是沒有問題,因為只有顯示是亂碼,其他都正常。
造成亂碼的原因是Ajax使用的XMLHttpRequest元件預設使用utf-8來作業,所以在非utf-8的網頁使用Ajax要特別注意「中文」資料傳送及回應的問題。
pageA.html --> ajax --> pageB.aspx
由PageA.html傳送給PageB.aspx會含有中文資料,處理方式是在資料傳送前使用javascript的內建escape()編碼要POST資料。例如,var Name = document.getElementById('txtName'); var QueryString = escape(Name.value); ... XMLHttp.send(QueryString);
這樣PageB.aspx就能接收到正確的資料。
javascript處理中文編碼函數參考
- escape(string):編碼,會處理#字元為%23,空白字元轉換為+,中文字處理為UniCode。
- unescape(string):反編碼escape(string)。
- encodeURI(string):編碼,不會處理#字元,空白字元轉換為%20,中文字處理為UTF-8。
- decodeURI(string):反編碼encodeURI(string)。
- encodeURIComponent(string):會處理#字元為%23,空白字元轉換為%20,中文字處理為UTF-8。
- decodeURIComponent(string):反編碼encodeURIComponent(string)。
pageA.html <-- ajax <-- PageB.aspx
當PageB.aspx要回傳給PageA.html的資料中含有中文資料,就ASP或ASP.NET而言,就是在PageB.aspx使用「Response.Charset="big5 | gb2312"」,強迫PageB.aspx以指定的編碼來回傳資料。這樣PageA.html的ResponseText或ResponseXML就會收到PageB.apsx所送回來含正確編碼的中文資料。當然最的方式就是PageA.html與PageB.aspx都使用utf-8,這樣最保險。
Reference:
Visual Studio 2010 新發現(8) -- 擴充組件庫(Visual Studio Gallery)
Visual Studio 2010開發工具除了UI的改進外,我認為很棒的一部份是「擴充性」,就我而言,我覺得Visual Studio 2010不足的部份,都能在「Visual Studio Gallery」找到補強的擴充功能,更讚的是,大多數是免費。
以下推薦一些我用過覺得不錯的擴充組件庫,通常都是安裝完重開Visual Studio 2010就能使用,我幾乎沒有動過設定。因為每個人的開發方向不同,所以應該會有出入,記得Visual Studio 2010開發工具不足的部份,可以先上Visual Studio Gallery找找。
題外話,寫JavaScript有時我會用以前介紹過的開發工具Aptana Studio (基本上是Free)來寫。
devColor解決了長久以來在寫或看CSS的一個大問題,那就是顏色,平常要撰寫CSS顏色就很麻煩,不會在我們打完#或rgb馬上跳出個色盤,要設什麼顏色,自己想辮法,對於我們不是美工出生的,總不能永遠都只和AA、BB、CC、DD…FF做伴,例如,#FFFFFF或rgb(0,0,0)或rgb(50%, 50%, 50%),就算我們選好了顏色,回到CSS Code過沒幾秒鐘就已經忘了剛才設定,「#1a2b3c」「#f355cd」這是什麼?
這時如果你有使用devColor,那就會偷笑。因為你所設定的顏色會立即提示在數值下方,devColor還會幫你管理現在CSS檔案裡所有有使用的顏色表,再來我自己發明的一小技巧,當你想使用色盤選擇顏色時,你可以先使用如「color: Aqua;」,因為"Aqua"之類預設值工具會提示,先亂選一個,再透過「Ctrl + click」技巧,去呼叫devColor的色盤出來選擇,這樣邊寫邊選的感覺~~真好!
如果你會在Visual Studio 2010裡寫CSS,那我十分推薦devColor。
又是題外話,寫CSS有時我會用以前介紹過的開發工具TopStyle (基本上是Free)來寫。
題 外話3,自從由Visual Studio Gallery補強相關功能後,開Aptana Studio與TopStyle的次數越來越少中。
Reference:
以下推薦一些我用過覺得不錯的擴充組件庫,通常都是安裝完重開Visual Studio 2010就能使用,我幾乎沒有動過設定。因為每個人的開發方向不同,所以應該會有出入,記得Visual Studio 2010開發工具不足的部份,可以先上Visual Studio Gallery找找。
Visual Studio 2010加強
- Productivity Power Tools
- Visual Studio Color Theme Editor
- PowerCommands for Visual Studio 2010
- VS10x Code Map
- VsVim
- 2010/12/27 補充
- VsVim會直接把你的編輯模式模擬成Vim,如果你玩過Linux的Vim,那你就知道Vim強大非同等比,而且還是Linux裡的必修課,如果你會按i進入Insert模式、按esc離開現在模式…等很習慣,那你可以透過VsVim把Visual Studio 2010當成Vim來使用。別外可參考www.ViEmu.com,可下載到Vim速查表(cheat-sheet),如果你已經使用Vim到成魔、成仙的,可參考ViEmu其住外掛,來增強Outlook及SQL Server Management Studio。
JavaScript加強
- Javascript parser
- VisualStudio 2010 JavaScript Outlining
- JSEnhancements
- JScript Editor Extensions
- JSLint.VS2010
- PrettyJs
題外話,寫JavaScript有時我會用以前介紹過的開發工具Aptana Studio (基本上是Free)來寫。
CSS加強
devColor解決了長久以來在寫或看CSS的一個大問題,那就是顏色,平常要撰寫CSS顏色就很麻煩,不會在我們打完#或rgb馬上跳出個色盤,要設什麼顏色,自己想辮法,對於我們不是美工出生的,總不能永遠都只和AA、BB、CC、DD…FF做伴,例如,#FFFFFF或rgb(0,0,0)或rgb(50%, 50%, 50%),就算我們選好了顏色,回到CSS Code過沒幾秒鐘就已經忘了剛才設定,「#1a2b3c」「#f355cd」這是什麼?
這時如果你有使用devColor,那就會偷笑。因為你所設定的顏色會立即提示在數值下方,devColor還會幫你管理現在CSS檔案裡所有有使用的顏色表,再來我自己發明的一小技巧,當你想使用色盤選擇顏色時,你可以先使用如「color: Aqua;」,因為"Aqua"之類預設值工具會提示,先亂選一個,再透過「Ctrl + click」技巧,去呼叫devColor的色盤出來選擇,這樣邊寫邊選的感覺~~真好!
如果你會在Visual Studio 2010裡寫CSS,那我十分推薦devColor。
又是題外話,寫CSS有時我會用以前介紹過的開發工具TopStyle (基本上是Free)來寫。
題 外話3,自從由Visual Studio Gallery補強相關功能後,開Aptana Studio與TopStyle的次數越來越少中。
Reference:
JavaScript之無法form.submit()的錯誤
先說,為了找這個錯誤,花了超過八個小時,不寫下來實在對不起自己。
表單(Form),通常會先寫一些validate的javascript,今天碰到一個教科書上沒教的事,我們先看form:
就一個TextBox與一個Button,span是拿來放訊息的,接下來我們寫個簡單的validateNonEmpty函式,驗證TextBox裡為是沒有資料即可:
使用傳統HTML加上onclick事件:
測試一下,發現在無資料時,Javascript可以正常運作,但在有資料時,Firebug會出現:
怪怪,明明就是form元素的submit,為什麼跟我說submit不是個函式,又不是沒寫過??????????之前我會花超過八個小時是因為那個表單又是Javascript又是jQuery,而且欄位又多,Debug起來費心費力,因為不確定是我寫的原生Javascript出錯,還是jQuery有錯,而且如果你頁面有引用jQuery的話,Firebug還會把錯放到jQuery身上,讓我一度以為我怎麼那麼厲害,隨便寫寫都能抓到JQuery的bug。所以在抓Bug時要使用「簡單原則」,如我能像上面一樣用簡單的作法,先進行測試,那…@_@…我的青春!
為了讓網頁架構分明,所以們我們會分離「架構(XHTML)、行為(Javascript)、樣式(CSS)」,所以在原始抓bug的網頁裡我是用jQurey來bind()事件,所以整體是這樣:
這時會產生一樣的錯誤。很多事沒有你想的複雜。後來我不斷思考(看著錯誤訊息)及測試終於找出問題點。
由錯誤訊息推估,當我們執行form.submit()的取得是button這個物件,而非submit()方法。自己被自己害到!
這也讓自己再學到一個經驗,取Javascript名稱不要與Javascript方法同名。還我八小時@_@。
Reference:
表單(Form),通常會先寫一些validate的javascript,今天碰到一個教科書上沒教的事,我們先看form:
<form method="post" action="submit_form.html"> <input type="text" id="test" /> <input type="button" id="submit" value="Send" /><br /> <span id="test_help"></span> </form>
就一個TextBox與一個Button,span是拿來放訊息的,接下來我們寫個簡單的validateNonEmpty函式,驗證TextBox裡為是沒有資料即可:
function validateNonEmpty(form){ if (document.getElementById('test').value.length != 0){ form.submit(); } else { var help = document.getElementById('test_help') help.innerHTML = "No Data."; } }
使用傳統HTML加上onclick事件:
<form method="post" action="submit_form.html"> <input type="text" id="test" /> <input type="button" id="submit" value="Send" onclick="validateNonEmpty(this.form)" /><br /> <span id="test_help"></span> </form>
測試一下,發現在無資料時,Javascript可以正常運作,但在有資料時,Firebug會出現:
form.submit is not a function
http://127.0.0.1:8000/html/submit_form.html
Line 9
怪怪,明明就是form元素的submit,為什麼跟我說submit不是個函式,又不是沒寫過??????????之前我會花超過八個小時是因為那個表單又是Javascript又是jQuery,而且欄位又多,Debug起來費心費力,因為不確定是我寫的原生Javascript出錯,還是jQuery有錯,而且如果你頁面有引用jQuery的話,Firebug還會把錯放到jQuery身上,讓我一度以為我怎麼那麼厲害,隨便寫寫都能抓到JQuery的bug。所以在抓Bug時要使用「簡單原則」,如我能像上面一樣用簡單的作法,先進行測試,那…@_@…我的青春!
為了讓網頁架構分明,所以們我們會分離「架構(XHTML)、行為(Javascript)、樣式(CSS)」,所以在原始抓bug的網頁裡我是用jQurey來bind()事件,所以整體是這樣:
function validateNonEmpty(form){ if (document.getElementById('test').value.length != 0){ form.submit(); } else { var help = document.getElementById('test_help') help.innerHTML = "No Data."; } } $(function(){ $('#submit').bind('click',function(){ validateNonEmpty(this.form); }); });
<form method="post" action="submit_form.html"> <input type="text" id="test" /> <input type="button" id="submit" value="Send" /><br /> <span id="test_help"></span> </form>
這時會產生一樣的錯誤。很多事沒有你想的複雜。後來我不斷思考(看著錯誤訊息)及測試終於找出問題點。
id="submit"是兇手
原因是button裡的id="submit",因為我們要使用jQuery來bind(),所以為button加上了id屬性,這此按鍵又是拿來發送,所以很直覺給它一個submit名稱,沒想到一個submit要花八個多小時來處理。當你把名稱修改為非submit,例如id="send",程式立即生效,我想是這是id名稱與函數名稱「強碰」所造成的錯誤。由錯誤訊息推估,當我們執行form.submit()的取得是button這個物件,而非submit()方法。自己被自己害到!
這也讓自己再學到一個經驗,取Javascript名稱不要與Javascript方法同名。還我八小時@_@。
Reference:
ASP.NET -- 同一個Master Page不同資料夾使用之路徑處理
在早期寫ASP時代,在美工方面,最喜歡使用include方式,把各區塊切一切後,include到原始*.asp之中,main一塊、content一塊、sidebar一塊、footer一塊,如果頁面複雜些,那就你的原始code中滿滿的include程式碼。
到了ASP.NET,有了Master Page,中文稱「主版頁面」,其實美工類的東西我碰的不多(其實是lazy),最近自己試著使用Master Page與CSS來進行的排版,排的還蠻有心得,CSS玩久了,好像是玩樂高積木,還不錯玩。
Master Page讓我們很方便進行統一排面配置,結合到頁面時,會不會有一堆雜七雜八的Code,可專心在Content上,但碰到一個問題,就是不同目錄在使用同一個Master Page時,會出現找不到檔案的問題。
例如,我在網站根目錄之下有「Site.master」檔案,內容引用CSS檔及jQuery檔:
在同一頁目錄之下的所有頁面,使用起來應讓是100%沒有問題,但如果你在其他目錄之下引用同一個Site.master檔,head引用的檔案會出現問題,例如在News目錄下引用根目錄之下的Site.master,會出現找不到Site.master的圖、檔案…等等。
查了一下路徑,原來Site.master的路徑被換成:
CSS的link正常,但script被多加了目錄路徑上去,就算你在Master Page使用ASP.NET的絕對路徑「~/Scripts/jQuery/jquery-1.4.4.min.js」,complier後的路徑是「News/~/Scripts/jQuery/jquery-1.4.4.min.js」,還是不對。(是因為script不是ASP.NET伺服器控制項)
最後上網查了一下,解決方式也很簡單,解法有二:
好處
如果你每個分類(News/Blog/Product/...)都會有不同的排版方式,因為*.master各自獨立,所以不會互向影響,每個版面修的改修,只影響各自分類的頁面。
壞處
如果你是要每個分類都有統一的版面,那複製就不是好辦法,複製*.master比較合適「客製化」,也就是每個分類頁面是有差異的,但如果是統一版面,那就是牽一髮動全身,一個*.master修改,其他所有*.master也要跟著修改。
像我現在在寫後台管理系統,需要的就是統一版面,使用複製*.master並不是好辦法,所以使用了ResolveUrl來轉換路徑之後,就可以在網站任何目錄及路徑之下使用根目錄的Site.master,而不會有任何問題。所以當你需一個統一版面的Master Page,記得為head裡的路徑加上ResolveUrl函數進行轉換。
ps. CSS引用的link可以不用, 怎麼用路徑都是正確的,我也不知道為什麼?
Reference:
到了ASP.NET,有了Master Page,中文稱「主版頁面」,其實美工類的東西我碰的不多(其實是lazy),最近自己試著使用Master Page與CSS來進行的排版,排的還蠻有心得,CSS玩久了,好像是玩樂高積木,還不錯玩。
Master Page讓我們很方便進行統一排面配置,結合到頁面時,會不會有一堆雜七雜八的Code,可專心在Content上,但碰到一個問題,就是不同目錄在使用同一個Master Page時,會出現找不到檔案的問題。
例如,我在網站根目錄之下有「Site.master」檔案,內容引用CSS檔及jQuery檔:
<link href="Styles/Site.css" rel="stylesheet" type="text/css" media="screen" /> <script src="Scripts/jQuery/jquery-1.4.4.min.js" type="text/javascript"></script>
在同一頁目錄之下的所有頁面,使用起來應讓是100%沒有問題,但如果你在其他目錄之下引用同一個Site.master檔,head引用的檔案會出現問題,例如在News目錄下引用根目錄之下的Site.master,會出現找不到Site.master的圖、檔案…等等。
查了一下路徑,原來Site.master的路徑被換成:
<link href="Styles/Site.css" rel="stylesheet" type="text/css" media="screen" /> <script src="News/Scripts/jQuery/jquery-1.4.4.min.js" type="text/javascript"></script>
CSS的link正常,但script被多加了目錄路徑上去,就算你在Master Page使用ASP.NET的絕對路徑「~/Scripts/jQuery/jquery-1.4.4.min.js」,complier後的路徑是「News/~/Scripts/jQuery/jquery-1.4.4.min.js」,還是不對。(是因為script不是ASP.NET伺服器控制項)
最後上網查了一下,解決方式也很簡單,解法有二:
複製原始Master Page
在每個目錄下copy一份原始的Master Page,然後修改裡面的路徑。例如在News複製一份原始的Site.master,然後指定使用News/Site.master檔,Blog目錄一樣複製然後使用Blog/Site.master。好處
如果你每個分類(News/Blog/Product/...)都會有不同的排版方式,因為*.master各自獨立,所以不會互向影響,每個版面修的改修,只影響各自分類的頁面。
壞處
如果你是要每個分類都有統一的版面,那複製就不是好辦法,複製*.master比較合適「客製化」,也就是每個分類頁面是有差異的,但如果是統一版面,那就是牽一髮動全身,一個*.master修改,其他所有*.master也要跟著修改。
路徑轉換
必須在Master Page裡使用in-line Code的寫法,為路徑進行ResolveUrl轉換即可。<script src="<%= ResolveUrl("~/Scripts/jQuery/jquery-1.4.4.min.js") %>" type="text/javascript"></script>
像我現在在寫後台管理系統,需要的就是統一版面,使用複製*.master並不是好辦法,所以使用了ResolveUrl來轉換路徑之後,就可以在網站任何目錄及路徑之下使用根目錄的Site.master,而不會有任何問題。所以當你需一個統一版面的Master Page,記得為head裡的路徑加上ResolveUrl函數進行轉換。
ps. CSS引用的link可以不用, 怎麼用路徑都是正確的,我也不知道為什麼?
Reference:
小孩帶金剛--舉一反三之"教你"
話說,我們家大寶貝實在可愛,而且腦袋一定很好,常常能舉一反三,這個「反三」部份,就是今天的主題,因為這個「反三」常常讓我們好好的修正自己,修成正果真的好難,不要覺得你已經是完人了,不要覺得怎麼教了那麼多遍怎麼還是不會,原來,她是學你的。
好了,來看看我的孩子是如何用「反三」來修練金剛。
婆婆當然是不高興,然後用生氣的口氣說,妳怎麼可以丟衣服在地上,然後就用快殺人的眼神,加上充滿力氣的食指,指著房間說:「自己pick-up,拿回去房間。」
其他如「丟玩具、丟書、丟食物…」當然都會被制止,然後說教一番。
就在不久後的一天晚上,當大寶貝在bathtub說她要看書書(先說明一下,我們有買「洗澡書」也就是塑膠做的書,可以在洗澡時看的書),婆婆就很順手的把書丟到bathtub裡,然後我們小聰明立即來個回馬槍說:「書書不要用丟的,書書不要用丟的。」
我和婆婆雙眼對看,苦苦的笑了。婆婆也立即認錯,過去去把書拿起來,好好的放下去,然後說對不起是媽咪不起。
就在這時候,大寶貝就會把東西接手過去,然後也看了看,然後請三媽婆婆上身,用非常婆婆的聲調、口氣、身段…說:「媽咪說不能買,看看就好,放回去!」然後把東西退還給我,請我放回去。
…人客呀…-_-"
言教不如身教,但身教與言教必須同時教育,婆婆在小地方就會要求大寶貝,像禮貌就是小細節又重要的地方,平常只要我們幫忙大寶貝做什麼事,我們就會請她要說「謝謝」,而學習力超強的大寶貝也會用這招。
我們會要求她幫忙做一些事,像吃飯時幫忙拿碗筷,吃完飯幫忙收東西,或許你看了會很怕,叫一個才滿二歲的孩子做這些事,因為碗盤都是瓷的,但是她幫的很好,吃完飯會問你說,你吃完了嗎?或很心急的就把碗收了!她把碗盤拿去洗碗槽後,就很快樂的過來說:「跟我說謝謝。」
第一次時,我也是和婆婆兩眼對看後傻笑。現有我們也在學習當一個有禮貌的父母親。
以上只是其中的一部份。大寶貝常常讓我們了解,原來我們教她要求她,但我們己自都沒做好身教與言教,我們也很高興,她也能要求我們和我們要求她一樣的事,教互相長。我們以為教了她,她就應該會了,會了不應該再犯,但當她用我們教她的道理來教我們時,原來,這些我們認為100%不應該再犯的錯,連我們都還在犯,那何況只是一個孩子呢?
我感謝我的孩子,每次請某某人上身時都讓我們受益良多。
Other list:
好了,來看看我的孩子是如何用「反三」來修練金剛。
不要用丟的
平常我和婆婆教孩子應該算嚴,只要孩子有不好或不對的事,我們都會立即教她,像有一次早上起床後,她吵著要脫睡衣,婆婆就把睡衣的帶子解開,然後請他自己脫拿去放好,脫是自己脫,但大寶貝確丟到地上,然後叫婆婆拿去放。婆婆當然是不高興,然後用生氣的口氣說,妳怎麼可以丟衣服在地上,然後就用快殺人的眼神,加上充滿力氣的食指,指著房間說:「自己pick-up,拿回去房間。」
其他如「丟玩具、丟書、丟食物…」當然都會被制止,然後說教一番。
就在不久後的一天晚上,當大寶貝在bathtub說她要看書書(先說明一下,我們有買「洗澡書」也就是塑膠做的書,可以在洗澡時看的書),婆婆就很順手的把書丟到bathtub裡,然後我們小聰明立即來個回馬槍說:「書書不要用丟的,書書不要用丟的。」
我和婆婆雙眼對看,苦苦的笑了。婆婆也立即認錯,過去去把書拿起來,好好的放下去,然後說對不起是媽咪不起。
媽咪說不能買
假日總是要去補些貨,所以總是要走一趟super market,男生比較理性,要買什麼看什麼,女生比較感性,東看西看,看不夠再左看右看,之前我也提過,大寶貝出門總是「摸摸看看就好」,而婆婆實在教的太好,在走走逛逛過程裡,總會出現一些我想拿起來看,看了之後又想買的東西。就在這時候,大寶貝就會把東西接手過去,然後也看了看,然後請
…人客呀…-_-"
跟我說謝謝
言教不如身教,但身教與言教必須同時教育,婆婆在小地方就會要求大寶貝,像禮貌就是小細節又重要的地方,平常只要我們幫忙大寶貝做什麼事,我們就會請她要說「謝謝」,而學習力超強的大寶貝也會用這招。
我們會要求她幫忙做一些事,像吃飯時幫忙拿碗筷,吃完飯幫忙收東西,或許你看了會很怕,叫一個才滿二歲的孩子做這些事,因為碗盤都是瓷的,但是她幫的很好,吃完飯會問你說,你吃完了嗎?或很心急的就把碗收了!她把碗盤拿去洗碗槽後,就很快樂的過來說:「跟我說謝謝。」
第一次時,我也是和婆婆兩眼對看後傻笑。現有我們也在學習當一個有禮貌的父母親。
以上只是其中的一部份。大寶貝常常讓我們了解,原來我們教她要求她,但我們己自都沒做好身教與言教,我們也很高興,她也能要求我們和我們要求她一樣的事,教互相長。我們以為教了她,她就應該會了,會了不應該再犯,但當她用我們教她的道理來教我們時,原來,這些我們認為100%不應該再犯的錯,連我們都還在犯,那何況只是一個孩子呢?
我感謝我的孩子,每次請某某人上身時都讓我們受益良多。
Other list:
保母帶小孩--新竹市北區延平路三段
年紀:0 ~ 5 歲
名額:1 ~ 2 名
地點:新竹市北區延平路三段
證照:有合格證照
費用:不收三節
教學:含教學課程
其他:面談
時間:即日起 ~
連絡:請Email到:「kingkong點bruce(at)gmail點com」或「下方留下你的連絡方式(我不會公布)」。
以下我個人推薦信:
「這位保母,是全世界最有愛心,最會教小孩,她是我看過的保母裡,最棒的一位,能讓她帶到的孩子,會是最幸福的孩子。她愛小孩,她還在上班時,每個來她們班的孩子,笑的進來,笑的出去,不管是心情還是功課,連家長都愛死了。當她離開時,每個孩子都哭了。這樣你就能知道,能給她帶的孩子是多麼幸福,我相信她能讓你的孩子跟別人不一樣。」
歡迎各位轉寄此訊息給有需要的人,名額有限,額滿為止。
名額:1 ~ 2 名
地點:新竹市北區延平路三段
證照:有合格證照
費用:不收三節
教學:含教學課程
其他:面談
時間:即日起 ~
連絡:請Email到:「kingkong點bruce(at)gmail點com」或「下方留下你的連絡方式(我不會公布)」。
以下我個人推薦信:
「這位保母,是全世界最有愛心,最會教小孩,她是我看過的保母裡,最棒的一位,能讓她帶到的孩子,會是最幸福的孩子。她愛小孩,她還在上班時,每個來她們班的孩子,笑的進來,笑的出去,不管是心情還是功課,連家長都愛死了。當她離開時,每個孩子都哭了。這樣你就能知道,能給她帶的孩子是多麼幸福,我相信她能讓你的孩子跟別人不一樣。」
歡迎各位轉寄此訊息給有需要的人,名額有限,額滿為止。
jQuery -- jquery-1.4.4-vsdoc.js會讓jQuery無法運作
我們在Visual Studio 2008後期增加了對jQuery支援,後來的Visual Studio 2010是全面支援,現在我們很方便的只要從Microsoft Ajax CDN引用jQuery*.js及jQery*.-vsdoc.js,就能同時使用jQeruy及即時性的說明訊息,即時性的說明訊息對我而言是很重要的,尤其常常寫東西會東少一點西少一點。
在使用最新jQuery 1.4.4版,奇怪,怎麼連個alert('Hi');都不理我,後來查看了一下Firebug,才知道原來是引用「http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4-vsdoc.js」這個jquery-1.4.4-vsdoc.js有問題:
原因很清楚了,這個jquery-1.4.4-vsdoc.js有bug,會造成jQuery無法運作。
解決的辦法有二:
除非你有特別使用到jQuery 1.4.x版本的功能,不然我是採用方法二,反正只要在Visual Studio裡開發方便即可,正式上線再修改為目前最新版本的jQuery 1.4.4即可。
ps討論:
我jQuery 1.2.6或jQuery 1.3.2用的好好的,為什麼上線前還要換成jQuery 1.4.4版,我個人的想法是「效能」。目前我的程式由jQuery 1.2.6升級為1.3.2再升級為1.4.4,都無出錯的現象,但單單得到的效能,可說是「倍數」成長,在執行大量Javascript時,這可不能說不補,畢竟當我們點網頁時「快、還要更快」,最好都能在0.x秒內完成@_@!
在使用最新jQuery 1.4.4版,奇怪,怎麼連個alert('Hi');都不理我,後來查看了一下Firebug,才知道原來是引用「http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4-vsdoc.js」這個jquery-1.4.4-vsdoc.js有問題:
class2type is not defined
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4-vsdoc.js
Line 2404
原因很清楚了,這個jquery-1.4.4-vsdoc.js有bug,會造成jQuery無法運作。
解決的辦法有二:
- 移除使用jquery-1.4.4-vsdoc.js
當你要執行網頁時,先將引用link移除,那你的jQuery程式就可以work了。經過測試,目前1.4.1、1.4.2、1.4.3、1.4.4版本(1.4無提供*.-vsdoc.js),只要引用*.-vsdoc.js,都會造成網頁上jQuery無法運作。
- 改引用jQuery 1.3.2版本,就能正常work了。
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.3.2.min.js
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.3.2.min-vsdoc.js
除非你有特別使用到jQuery 1.4.x版本的功能,不然我是採用方法二,反正只要在Visual Studio裡開發方便即可,正式上線再修改為目前最新版本的jQuery 1.4.4即可。
ps討論:
我jQuery 1.2.6或jQuery 1.3.2用的好好的,為什麼上線前還要換成jQuery 1.4.4版,我個人的想法是「效能」。目前我的程式由jQuery 1.2.6升級為1.3.2再升級為1.4.4,都無出錯的現象,但單單得到的效能,可說是「倍數」成長,在執行大量Javascript時,這可不能說不補,畢竟當我們點網頁時「快、還要更快」,最好都能在0.x秒內完成@_@!