新增自訂指令碼

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

如何在入口網站中,於每個頁面的 <body> 標記前新增自訂 JavaScript 程式碼或 HTML 內容:

  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>