Django独立模板中按钮onClick传参单引号转义问题求助
解决Django模板onClick参数单引号转义问题
以下几种方法可以解决这个转义问题,按需选择:
- 使用
|safe过滤器:直接告知Django该变量无需转义,适合变量内容完全可信的场景(无用户输入的恶意内容):
<button id="order" onclick="myFunction('{{ val|safe }}')"> {{ val }} </button>
- 换用引号搭配
|escapejs过滤器(推荐):将onclick属性用单引号包裹,函数参数用双引号,同时用escapejs处理变量,既避免转义问题,又能安全处理JavaScript字符串的特殊字符,防范XSS风险:
<button id="order" onclick='myFunction("{{ val|escapejs }}")'> {{ val }} </button>
- 关闭块级自动转义:用
{% autoescape off %}标签临时关闭对应块的转义,同样需确保变量内容可信:
<button id="order" onclick="myFunction('{% autoescape off %}{{ val }}{% endautoescape %}')"> {{ val }} </button>
内容的提问来源于stack exchange,提问作者Jon Reese
相关产品推荐
相关产品推荐

