JavaScript IntelliSense
IntelliSense 藉由在您撰寫程式碼的同時提供資訊,幫助您更快速地撰寫程式碼,並減少錯誤。 當您在 JavaScript 編輯器的用戶端指令碼時, IntelliSense 清單是依據目前內容的可用的物件、函式、屬性和參數。 您可以從 IntelliSense 提供的快顯清單選取程式碼撰寫選項,以完成程式碼。
IntelliSense 可讓您更輕鬆地完成下列工作:
尋找成員資訊。
直接將語言項目插入程式碼中。
不需離開程式碼編輯器即可維護內容。
支援與 XML 文件註解和 JavaScript IntelliSense 擴充性自訂 IntelliSense。
如需新的 JavaScript 語言服務功能的詳細資訊,請參閱 Visual Studio 2012 的新功能。
此主題包括下列章節:
判斷 IntelliSense 的內容
處理 IntelliSense 資訊
JavaScript IntelliSense 功能。
JavaScript IntelliSense 擴充性
JavaScript 驗證
如需 Visual Studio 之 IntelliSense 功能的詳細資訊,請參閱使用 IntelliSense。
判斷 IntelliSense 的內容
JavaScript IntelliSense 會根據與您目前的指令碼內容相關的所有指令碼的指令碼。 這包括目前檔案內的指令碼項目。 它同時也包含任何從指令碼直接參考或間接參考的程式碼,例如:指令碼檔參考、組件 (Assembly) 指令碼參考、服務參考和關聯頁面參考。
您目前的指令碼內容根據下列項目建立:
在所有指令碼中定義的函式中文件封鎖。 具有 .aspx.、.ascx、.master、.html 和 .htm 等副檔名的檔案所支援之內嵌 (Inline) 指令碼區塊。
使用指向另一個指令碼檔之 src 屬性的script 項目。 目標指令碼檔必須以 .js 為副檔名。
使用參考 reference 指示詞,的 JavaScript 檔案其他 JavaScript 檔案。
全域物件、IntelliSense 副檔名或延遲載入指令碼檔的參考群組。
XML Web 服務的參考。
ScriptManager 和 ScriptManagerProxy 控制項 (如果 Web 應用程式是 ASP.NET AJAX 應用程式)。
Microsoft AJAX Library (如果您使用的是具備 AJAX 能力的 ASP.NET Web 應用程式)。
注意事項 IntelliSense 不支援在 HTML 項目上使用事件處理常式屬性的指令碼,或定義於 href 屬性的指令碼。
處理 IntelliSense 資訊
若要提供 JavaScript IntelliSense,語言服務會執行下列作業:
建立相依根據在現用文件的參考,因此,以遞迴地檢查的指令碼所參考檔案中參考的 JavaScript 檔案清單。
周遊清單並從每個檔案收集型別資訊,以及其他相關資料。
彙總資料並將它傳遞至 JavaScript 語言服務,將型別資訊和可用資料的 IntelliSense。
監控可能影響 IntelliSense 清單的檔案變更,並視需要更新清單。 在遠端存放區的指令碼 (例如使用 HTTP 參考的那些) 不會監視。
JavaScript IntelliSense 功能。
JavaScript IntelliSense 支援下列物件:
文件物件模型 (DOM) 項目
內建物件
使用者定義的變數、函式和物件
在外部檔案中定義的物件使用參考 ( 指令碼參考、 參考指示詞和 參考群組。
在 XML 文件註解。中指定的物件,例如參數和欄位。
使用標準 JavaScript 註解標記中所描述的物件 (/)。 如需詳細資訊,請參閱擴充 JavaScript IntelliSense。
使用 JavaScript IntelliSense 擴充性 機制支援的物件。 如需詳細資訊,請參閱擴充 JavaScript IntelliSense。
ASP.NET AJAX 物件
當 IntelliSense 無法決定物件的型別,使用中文件,其中識別項為陳述式完成提供選項。 如需詳細資訊,請參閱識別項的陳述式完成。
HTML DOM 項目
JavaScript IntelliSense 為動態 HTML (DHTML) DOM 項目的程式設計參考,例如 body、 form和 div。 IntelliSense 只會顯示包含在目前文件內的項目和主版頁面 (Master Page)。 JavaScript IntelliSense 也支援 window 和 document 物件及其成員。
內建物件
JavaScript IntelliSense 為內建物件 Array、 String、 Math、 Date和 Number原本的程式設計參考。 如需內建物件的詳細資訊,請參閱內建物件 (JavaScript)。
使用者定義的變數、函式和物件
當您變更 JavaScript 檔案時, Visual Studio 會掃描開啟的和參考的文件來判斷所有可用的程式碼資源。 這包括您建立的變數、函式和物件。 這些資源至 JavaScript IntelliSense 便可以使用。
如需使用者定義之變數、函式和物件的詳細資訊,請參閱 MSDN 網站上的建立您自己的物件。
外部檔案參考
您可以加入外部檔案參考的各種達成 IntelliSense 支援程式碼。 外部檔案參考可能是指令碼參考,指示詞,使用參考群組,也可以指定。
指令碼參考
除了在網頁內撰寫所有用戶端指令碼之外,您還可以參考包含指令碼的外部檔案。 這種方式可以很方便的在各個網頁間重複使用程式碼,並且可讓瀏覽器快取用戶端指令碼。
如果您目前未使用具備 ASP.NET AJAX 能力的網頁,則可以使用 script 項目之開頭標記內的 src 屬性參考外部指令碼檔。 src 屬性指定了包含原始程式碼或資料之外部檔案的 URL。
下列範例顯示了在 <script> 標記 (Tag) 內使用 src 屬性來參考指令碼檔的標記 (Markup)。
<script type="text/javascript" src="~/Scripts/JavaScript.js">
</script>
如果您正在使用具有 ASP.NET AJAX 能力的網頁,則可以使用 ScriptManager 控制項的 ScriptReference 物件參考指令碼檔。
下列範例顯示了以 ScriptManager 控制項內的 ScriptReference 物件來參考指令碼檔的標記。
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/JavaScript.js" />
</Scripts>
</asp:ScriptManager>
IntelliSense 也支援在 ASP.NET AJAX Web 應用程式內的組件中,內嵌為資源的指令碼檔。 如需內嵌指令碼資源的詳細資訊,請參閱Embedding a JavaScript File as a Resource in an Assembly。
參考指示詞
reference 指示詞可讓 Visual Studio 在您目前正編輯的指令碼和其他指令碼之間,建立關聯性 (Relationship)。 reference 指令詞可讓您在目前指令碼檔的指令碼內容中包含指令碼檔。 如此可讓 IntelliSense 參考外部定義的函式、型別及欄位,將其當做您的程式碼使用。
您可以以 XML 註解的格式建立 reference 指示詞。 指示詞在檔案內的宣告必須早於任何指令碼。 reference 指示詞可以包含磁碟架構的指令碼參考、組件架構的指令碼參考、服務架構的指令碼參考,或網頁架構的指令碼參考。
列下範例示範使用磁碟架構之 reference 指示詞。 在第一個範例中,語言服務會尋找在包含專案檔的相同資料夾中的檔案, (.jsproj)。
/// <reference path="ScriptFile1.js" />
/// <reference path="Scripts/ScriptFile2.js" />
/// <reference path="../ScriptFile3.js" />
/// <reference path="~/Scripts/ScriptFile4.js" />
下列範例示範如何建立組件架構指令碼的參考。
/// <reference name "Ajax.js" assembly="System.Web.Extensions, ..." />
下列範例示範如何建立服務架構指令碼的參考:
/// <reference path="MyService.asmx" />
/// <reference path="Services/MyService.asmx" />
/// <reference path="../MyService.asmx" />
/// <reference path="~/Services/MyService.asmx" />
注意事項 |
---|
JavaScript IntelliSense 不支援在 Web 應用程式專案 (WAP) 之 Web 服務的指令碼支援 (.asmx) 檔案中。 |
下列範例示範如何建立網頁架構指令碼的參考。
/// <reference path="Default.aspx" />
/// <reference path="Admin/Default.aspx" />
/// <reference path="../Default.aspx" />
/// <reference path="~/Admin/Default.aspx" />
reference 指示詞有下列規則。
reference XML 註解必須在任何指令碼之前宣告。
您必須使用具有三個斜線的 XML 註解語法。 使用標準註解語法 (兩個斜線) 建立的參考會被忽略。
每個指示詞只能指定一個檔案或參考。
不允許有多個網頁架構指令碼的參考。
如果已指定某個網頁參考,則不允許再使用其他類型的 reference 指示詞。
檔案名稱使用相對路徑。 您可以使用波狀符號運算子 (~) 代表應用程式根目錄的相對路徑。
絕對路徑會被忽略。
參考之網頁內的 Reference 指示詞將不會被處理,這表示 reference 指示詞不會遞迴地解析網頁。 只會納入直接由網頁所參考的指令碼。
參考群組
您可以使用參考群組指定特殊 IntelliSense .js 檔案中所有的 JavaScript 專案範圍。 三個參考群組可用:隱含 (視窗),隱含 (Web) 和專屬的背景工作參考群組。 隱含 (視窗) 使用 JavaScript,參考適用於 Windows 市集 應用程式,因此,隱含 (Web) 參考適用於 HTML5 專案。 在這些隱含參考群組中的檔案會在程式碼編輯器中開啟的每個 .js 檔案。
專屬的背景工作參考群組是 HTML5 Web 背景工作。 在這個群組中指定的檔案會在具有專屬的背景工作參考群組的明確參考 .js 檔案。 隱含參考不適用於具有專屬的背景工作參考群組的明確參考 .js 檔案。
您可以使用設定選項以 JavaScript 程式碼編輯器中指定的隱含參考。 如需詳細資訊,請參閱IntelliSense、JavaScript、文字編輯器、選項。
提示
IntelliSense 參考通常是用來提供 IntelliSense 支援全域物件以及用於 IntelliSense 的 擴充功能。您可以為必須裝載在執行階段使用指令碼載入器,的指令碼也使用這項功能。
XML 文件註解
XML 文件註解是您加入至指令碼的文字描述。 當您參考註解指令碼時,這些文字描述在 IntelliSense 中。 例如,您可以提供有關函式的參數和傳回值的相關資訊。 XML 文件註解從參考的檔案、組件和服務只能。 如需詳細資訊,請參閱XML 文件註解 (JavaScript)與HOW TO:建立 JavaScript XML 文件註解。
IntelliSense 可在下列檔案參考案例中顯示 XML 註解的程式碼參考:
參考另一個 .js 檔的 .js 檔案。
參考 .aspx 檔的 .js 檔案。
參考 .js 檔的 .aspx 檔案。
當 .aspx 檔案參考另一個 .aspx 檔時,便無法使用 IntelliSense。
ASP.NET AJAX 物件
ASP.NET AJAX 也支援 JavaScript IntelliSense。 ASP.NET AJAX 包含擴充標準型別可在 ECMAScript 的用戶端架構 (JavaScript)。 若要讓 JavaScript IntelliSense 提供 ASP.NET AJAX 物件的詳細資料, XML 文件註解加入至 Microsoft AJAX Library中。 這些 XML 文件註解會顯示,當您使用 ASP.NET AJAX 程式庫中包含的型別和成員時。
注意事項 |
---|
私用成員不是由 JavaScript IntelliSense 顯示。私用成員在 ASP.NET AJAX 中是以底線 (_) 為起始的成員來代表。 |
JavaScript IntelliSense 擴充性
JavaScript 語言服務提供可讓您修改開發人員經驗的 IntelliSense 使用協力廠商程式庫物件和函式。 這些功能特別有用,因為預設語言服務不能提供您要提供給客戶的所有資訊時。 如需詳細資訊,請參閱擴充 JavaScript IntelliSense。
JavaScript 驗證
通常指令碼驗證發生的 JavaScript 在背景。 當 Visual Studio 在 JavaScript 程式碼的語法錯誤,會以下列方式提供意見:
將編輯器內的項目加上底線。 以紅色波浪底線指出錯誤。 如果您將滑鼠指標停留在錯誤上方,則會顯示錯誤描述的工具提示。
[錯誤清單] 視窗。 [錯誤清單] 視窗會顯示錯誤描述、發生錯誤的檔案位置、行號和欄數,以及專案。 若要顯示 [錯誤清單] 視窗,請按一下 [檢視] 功能表中的 [錯誤清單]。
輸出視窗顯示未載入的參考。
回到頁首