新增自訂指令碼

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

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

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

  5. 按一下 [儲存]

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

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

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

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

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

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

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>