共用方式為


Microsoft Dynamics 365 適用的 JavaScript 程式庫

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

JavaScript 程式庫是 指令碼 (JScript) Web 資源,包含可以用於下列操作的函數:

  • 處理表單和欄位事件。

  • 執行在功能區中設定之控制項的動作。

  • 支援其他函數。

使用 JScript 程式庫

您可以和任何 Web 應用程式 JavaScript 程式庫一樣地使用 JavaScript 程式庫。

關聯函數與表單和欄位事件

您最多可以關聯 50 個指令碼 Web 資源,使其載入至實體表單。

在新增程式庫至表單之後,程式庫可用於在表單中的所有事件。 對於所有事件,您可決定哪些函數是事件處理常式。 您最多可以指定 50 個函數為任何事件的事件處理常式。

在執行階段關聯函數

使用 Xrm.Page.data.entity attribute.addOnChangeXrm.Page.data.entity.addOnSave 和查詢控制項 addPreSearch 方法,在執行階段將函數加入到 OnChange 屬性、表單 OnSave 和查詢控制項 PreSearch 事件。 使用這些方法時,函數會新增至事件處理常式管線底下,而且會接收執行內容做為第一個參數。 您可以使用對應的 removeOnChangeremoveOnSaveremovePreSearch 方法,移除以此方式新增的函數。

執行內容

可設定每個事件處理常式接受執行內容物件做為第一個參數。 執行內容包括函數,可以呼叫確定下列項目:

  • 深度:執行此處理常式的相對順序。

  • 事件來源:啟始事件的物件的參照。

    當您建立可回應來自多個不同表單事件或欄位事件的函數時,此功能很重要。

  • 共用變數:這允許函數設定變數做為可由其他事件處理常式存取的索引鍵/值組。

其他資訊:執行內容 (用戶端參考)

在處理常式屬性對話方塊中,您可以輸入要傳遞至函數的字串值逗點分隔清單。 此功能很有用,允許函數的行為變更,不需要程式碼變更。

關聯函數與命令列 (功能區) 命令

在命令列或功能區的每個控制項都會與 <CommandUIDefinition> (RibbonDiffXml) 相關聯,其中 <Actions> (RibbonDiffXml) 元素包含一個或多個動作。<JavaScriptFunction> (RibbonDiffXml) 是其中一個可用的動作。JavaScriptFunction 元素需要程式庫和該程式庫中之函數的參照。

開發並測試指令碼

您可以透過 Web 資源表單或從設定表單程式庫和事件處理常式的 [事件] 索引標籤,來編輯指令碼。

或者,您可以使用最愛的編輯工具並上傳變更來更新指令碼 Web 資源。 變更後,您必須發行 Web 資源。

建立指令碼程式庫

在您設計用於 JavaScript 程式庫的函數時,您的函數可能會與其他 JavaScript 程式庫一起載入至表單。 如果其他程式庫包含的函數與您提供的函數名稱相同,最後載入的函數在頁面上定義。 若要避免您的函數被其他文件庫中的函數覆寫,您應該確保函數有唯一名稱。

可以協助您確保函數有唯一名稱的兩個策略是:

  • 唯一的函數首碼
    使用包含唯一命名慣例、一致名稱的標準語法,定義每個函數,如下列範例所示。

    function MyUniqueName_performMyAction()
    {
    // Code to perform your action.
    }
    
  • 命名空間的程式庫名稱
    關聯每個函數與 JavaScript 物件,建立在呼叫您的函數時使用的一種命名空間,如下列範例所示。

    //If the MyUniqueName namespace object isn’t defined, create it.
    if (typeof (MyUniqueName) == "undefined")
     { MyUniqueName = {}; }
      // Create Namespace container for functions in this library;
      MyUniqueName.MyFunctions = {
       performMyAction: function(){
       // Code to perform your action.
       //Call another function in your library
       this.anotherAction();
      },
      anotherAction: function(){
       // Code in another function
      }
    };
    

    然後,當您使用函數時,您可以指定全名。 下列範例示範此用法。

    MyUniqueName.MyFunctions.performMyAction();
    

    如果呼叫在其他函數內的函數,您可以使用 this 關鍵字,做為包含兩個函數的物件的捷徑。 不過,如果函數做為事件處理常式,this 關鍵字將參照事件發生的物件。

指令碼偵錯

每個瀏覽器有自己的開發人員工具集。 下列指示說明使用 Internet Explorer。

偵錯 Microsoft Dynamics 365 表單中的指令碼
  1. 按 F12 開啟開發人員工具。

  2. 在 [指令碼] 索引標籤上,使用 [開始偵錯] 按鈕右方的下拉式清單,找出您的 JavaScript 程式庫。

  3. 按一下函數的左邊界,設定中斷點。

  4. 按一下 [開始偵錯]。

  5. 若指令碼在 Onload 事件中,則必須選取 Microsoft Dynamics 365 視窗,然後按 F5 重新載入視窗。

如需詳細資訊,請參閱使用開發人員工具偵錯指令碼

另請參閱

使用 JavaScript 搭配 Microsoft Dynamics 365
自訂 Microsoft Dynamics 365 應用程式
在用戶端上擴充 Microsoft Dynamics 365
指令碼 (JScript) Web 資源
撰寫 Microsoft Dynamics 365 表單的程式碼
自訂實體表單
定義功能區動作
範例:匯入檔案為 Web 資源
範例:Web 資源公用程式

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權