使用自訂函數可以實現更靈活的功能。目前為止,自訂函數可以在以下事件中使用:重新導向要求、變更要求標頭、變更回應標頭。
自訂函數也受匹配規則和排除規則的限制。只有滿足匹配規則且不滿足排除規則的要求會被自訂函數處理。
注意:
自訂函數編寫不包括函數頭尾,只包括函數主體。即:
例如:

自訂函數會傳入參數 val 和 detail。其中:
val 根據規則類型不同而不同。
detail 是2.3.0版本新增的參數。
detail物件相同。傳入參數 val 為完整URL的字串,若函數不處理可返回 null 或原參數。例如,下面程式碼會將.jpg均重新導向為.gif:
自4.0.3起,返回 _header_editor_cancel_ 可取消此要求,如:
傳入參數 val 為一個陣列,包含所有標頭資訊,格式為:[{"name": "標頭名稱", "value": "標頭內容"} …… ]。
該自訂函數不需要任何返回值,只需要修改傳入的參數即可生效。例如,此程式碼會將 User-Agent 加上 HE/2.0.0:
注意:瀏覽器要求value必須是String,即:
自2.3.0開始,自訂函數增加參數detail,用於實現更精確的控制
此參數為 Object,且為唯讀參數。結構如下:
可用資源類型見此處
您可以藉此實現一些進階功能,例如,下面的程式碼只會將example.com網域下的圖片和影片重新導向到example.org:
自 5.4.2 起,Header Editor 提供了一些工具函數,用於簡化自訂函數編寫。您可以在自訂函數中透過 util 呼叫它們。例如 util._.clone(val)。
類型定義如下:
lodash 函數請參考官方文件
所有自訂函數的運行均位於背景頁面,因此,要除錯自訂函數,請開啟背景頁面的主控台
chrome://extensions/中,啟用「開發者模式」,點擊 Header Editor 下方的「檢查檢視」-「背景頁」或「Service Worker」about:debugging,啟用附加元件除錯,點擊 Header Editor 旁邊的「檢查」