網頁

Visual Studio 2008中的JavaScript IntelliSense

在我們使用VS2008(Visual Studio 2008)中,排除語言(C#, VB.NET)等不談,其中最重要的就是IntelliSense功能,而在VS2008裡你可以發現,不論是本身的語言支援外,連CSS與JavaScript都有支援。而IntelliSense包括了四項功能:

  • 列出成員( List Members )
  • 參數資訊( Parameter Information )
  • 快速諮詢( Quick Information )
  • 自動完成文字( Complete Word )

這四項功能,我認為每一樣都很重要,而且非常實用。

其中VS2008之中JavaScript支援是指原JavaScript內建物件成員的支援,如Array、String、Math、Date、Number等內建物件,這提供我們在撰寫JavaScript程式碼時極大的便利性,這一點是一般文字編輯器所做不到的。

But,如果是我們自行撰寫的JavaScript Function,是否也能像原JavaScript內建物件一樣支援IntelliSense,這就是今天的重點。


in-line撰寫JavaScript Function

in-line就是說在HTML中的<head>...</head>區段中加入<script type ="text/javascript">...</script>區段,然中在<script>區段中加入自行撰寫的JavaScript Function:



function showName(firstName, lastName) {
    alert("First Name :" + firstName + ", Last Name :" + lastName);
 } 


當你稍後引用時,就能發現VS2008會自動將你撰寫的Function showName()資訊加入IntelliSense之中,讓你享受IntelliSense所帶來的方便。不過在內嵌的JavaScript IntelliSense目前只能提供「參數個數」及「名稱資訊」。


在外部*.js中提供快速諮詢及參數資訊之說明文字提示

    這部份我先說,我也不知道為什麼VS2008中在內嵌的JS裡無法使用以下提供的方法,以下提供的方法只能在外部獨立的JavaScript檔案使用。這個方法正式名稱為「XML Code Comment」(XML程式碼註解)。

我們先在外部*.js中新增Function,然後在Function加入XML程式碼註解。

  • ///<summary></summary>,快速諮詢資訊
  • ///<param name="參數名稱" /></param>
  • ///<returns type="型別"></returns>,回傳值資訊
Tag之前都必須加上三條斜線(///),不可省略。


function showNameTime(firstName, lastName) {
    ///<summary>顯示使用者的姓名</summary>
    ///名字</param>
    ///姓名</param>
    alert("First Name :" + firstName + ", Last Name :" + lastName );
}
function getTime() {
    ///<summary>目前時間</summary>
    ///<returns type="string">回傳hh:mm:ss格式</returns>
    var date = new Date();
    var dateTime = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
    return dateTime;
} 

現在把這個外部*.js引用到使用的網頁中(*.html, *.aspx),然後在需要使用的地方打上Function Name,你應該就可以看到與內嵌不一樣的效果,是完整度更高的JavaScript IntelliSense。


多個*.js檔案之間的JavaScript IntelliSense參考

既然這個 「XML程式碼註解」的方法,只能使用在「外部*.js」,那如果是在多個*.js的情況下,那是否可以「互相」參考後來產生對方*.js的JavaScript IntelliSense,答案是可以。

showName.js裡有Function showName(),今天我有另一個getTime.js需要使用到showName.js,我想讓getTime.js支援showName.js的JavaScript IntelliSense,你只需要在getTime.js的第一行加入:


///<reference path="showName.js" />

然後你就能發現在撰寫getTime.js時也能參考到showName.js裡的IntelliSense,而且這種參考是可以雙向的,在showName.js中如果需要使用到getTime.js的Function,你也能在showName.js的第一行使用這個XML程式碼註解的方法。


強制更新JavaScript IntelliSense

也就是有時候如果你已經依照上述方法設定完成,但VS2008還來不及更新JavaScript IntelliSense,我們也可以手動更新這個JavaScript IntelliSense:

「編輯」→「IntelliSense」→「更新JScript IntelliSense」

這樣就可以命令VS2008立即更新JavaScript IntelliSense,讓我們馬上可以使用JavaScript IntelliSense所帶來的便利。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。