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>