新增自訂指令碼

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

Cloud 控制台 UI

  1. 在 Apigee in Cloud 控制台中,前往「Distribution」>「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>