新增自訂指令碼

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

如要在入口網站的每個網頁上,在 <body> 標記前新增自訂 JavaScript 程式碼或 HTML 內容,請按照下列步驟操作:

Cloud 控制台 UI

  1. 在 Apigee in Cloud 控制台中,依序前往「Distribution」>「Portals」頁面。

    前往「Portals」

  2. 按一下導覽選單中的「設定」

  3. 在「自訂指令碼」部分,在文字方塊中輸入自訂 JavaScript 程式碼。您可以加入多個指令碼。

  4. 按一下 [儲存]

傳統版 UI

  1. 依序選取「發布」>「入口網站」,然後選取入口網站。
  2. 按一下到達網頁上的「設定」。或者,您也可以在頂端導覽列的下拉式選單中選取「設定」
  3. 按一下「自訂指令碼」分頁標籤。
  4. 在「自訂指令碼」部分,在文字方塊中輸入自訂 JavaScript 程式碼。您可以加入多個指令碼。
  5. 按一下 [儲存]

以下各節提供自訂指令碼範例:

另請參閱「設定 Analytics 追蹤」。

在 onLoad 或 onUnload JavaScript 事件期間執行自訂指令碼

定義在入口網站的每個網頁執行的自訂指令碼:

  • 使用 onLoad JavaScript 事件載入 DOM。
  • 使用 onUnload JavaScript 事件離開。

自訂函式必須定義為全域命名空間中的 portal.pageEventListeners 的一部分 (在 window 變數中宣告)。

onLoadonUnload 事件都會接收網頁目前的路徑做為第一個參數 (例如 /quickstart)。onUnload 函式會接收 onLoad 呼叫的傳回值做為第二個參數,讓兩個事件之間能傳遞背景資訊。使用 onUnload 清理不再需要的事件監聽器,並執行其他清理活動。

例如:

<script>
window.portal = {};
window.portal.pageEventListeners = {
  onLoad: (path) => {
    if (path === '/quickstart') {
      // Change text content of first <p> element to something
      // else. (DOM must be loaded when onLoad is called)
      document.getElementsByTagName('p')[0].textContent =
          'Welcome to the quick start! Be sure to send us your feedback.';
      // print a custom message to the console every second while user is on
      // quickstart page.
      const interval =
          window.setInterval(() => console.log('Hello'), 1000);
      return interval;
    }
    return undefined;
  },
  onUnload: (path, contextReturnedFromOnLoad) => {
    if (contextReturnedFromOnLoad != null) {
      // Stop printing custom message to console every second.
      window.clearInterval(contextReturnedFromOnLoad)

    }
  },
};
</script>

您可以使用自訂指令碼導入 Cookie 同意聲明解決方案。JavaScript 中實作了許多熱門的開放原始碼選項,請選取符合特定法規遵循要求的選項。

舉例來說,下列指令碼會使用 Cookie 資訊指令碼

<script type="text/javascript" id="cookieinfo" src="//cookieinfoscript.com/js/cookieinfo.min.js">
</script>