首页 > 解决方案 > 为什么脚本标签会自动将 & 转换为 &?

问题描述

我遇到了一个我以前没有遇到过的奇怪问题。我的 html 是通过 Django 模板生成的,包含一些基本代码,这些代码基于带有一些 GET 变量的查询字符串(即“/report1/?filter1=abc&filter2=def”)初始化 DataTable。

<script></script>然而,突然之间,每当我在标签中写出 Django 模板变量时,它&就会被转换为&amp;,如下所示:

<script>
var link = "/report1/?filter1=abc&amp;filter2=def"
</script>

但是,当不在script标签内时,字符串按原意输出: "/report1/?filter1=abc&filter2=def"

这是基于完全相同的 Django 模板变量,没有任何更改。

script导致 & 被编码的原因是什么?这发生在当前版本的 Edge 和 Firefox 中。Django 显然对标签一无所知,<script></script>所以它一定是浏览器的东西。

任何想法如何防止这种情况发生?这是过去似乎没有发生过的事情。

谢谢!

作为参考,我的 Django 模板如下所示:

{{ string }}<br>
<script>
var link = "{{ string }}"
</script>

标签: javascripthtmldjango

解决方案


|safe好的,所以我搞砸了,当我更新到最新版本时,我忽略了意识到现在需要标记字符串

当然,我是在写完这篇文章后才意识到这一点的。


推荐阅读