hx-disable
hx-disable 属性将禁用对给定元素及其所有子元素的 htmx 处理。当你在站点中包含用户生成的内容,并且希望防止恶意脚本攻击时,这可用作 HTML 转义的备份。
标签的值将被忽略,并且它所包含的任何内容都无法激活它。
用法
<button
hx-get="/api/security"
hx-target="#result"
hx-disable
>
提交
</button>
<div id="result"></div>
此时,点击提交按钮将不会触发 hx-get 请求。以上代码等同于:
<button
disabled
hx-post="/submit"
hx-target="#result"
>
提交
</button>
<div id="result"></div>
备注
- hx-disable 是可继承的
防止恶意脚本攻击
当服务端返回元素,并对页面元素进行交换时,如果担心服务端响应的内容包括恶意代码(被中间人攻击或XSS攻击等),则可以把交换的目标元素加上 hx-disable 属性。
<button
hx-post="/submit"
hx-target="#result"
>
提交
</button>
<div id="result" hx-disable></div>