事件 - htmx:validateUrl
此事件在发出请求之前触发,允许你验证 htmx 将要请求的 URL。这个事件是 在请求发送之前、构造 URL 阶段触发的。如果 preventDefault() 在事件上调用,则不会发出请求。
事件参数
- detail.elt - 触发请求的元素
- detail.url - 表示请求将发送到的 URL 的 URL 对象。
- detail.sameHost - 如果请求与当前页面位于同一主机则为 true
示例代码
document.body.addEventListener('htmx:validateUrl', function (evt) {
// only allow requests to the current server as well as myserver.com
if (!evt.detail.sameHost && evt.detail.url.hostname !== "myserver.com") {
evt.preventDefault();
}
});
htmx:validateUrl 事件发生在 htmx:beforeRequest 事件之前。该事件不会向服务器发起请求,仅仅是本地的一个事件钩子,允许你在 beforeRequest 的前面做一些发起请求的准备或者做一些预校验。
例如:在全局层面禁止发起跨站请求、又或者拦截带恶意代码的 URL 等。