使用自定义函数可以实现更灵活的功能。目前为止,自定义函数可以在以下事件中使用:重定向请求、修改请求头、修改响应头。
自定义函数也受匹配规则和排除规则的限制。只有满足匹配规则且不满足排除规则的请求会被自定义函数处理。
注意:
自定义函数编写不包括函数头尾,只包括函数主体。即:
例如:

自定义函数会传入参数 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 旁边的“检查”