Django模板引擎为何会替换script标签的type属性?
Django模板中script标签type属性被自动修改的问题
我的Django模板里有这样一段script标签:
<script type="text/plain" class="optanon-class"> //code </script>
这里的*type="text/plain"*非常关键,它能阻止浏览器加载HTML时立即执行脚本——我们的逻辑是通过Cookie同意流程,根据用户的同意偏好再运行这段代码。
但现在出现了问题:脚本还没经过用户同意就直接执行了。查看浏览器实际加载的HTML后发现,script标签的type属性被修改了:
<script type="text/javascript" class="optanon-class"> //code </script>
看起来是模板渲染过程中覆盖了type属性,奇怪的是class属性还保留着,我翻遍Django Template Language文档也没找到相关说明。
当前的配置很常规:模板后端用的是标准的django.template.backends.django.DjangoTemplates,视图在url_patterns里用TemplateView.as_view(template_name, {context}, name),引擎和视图都没有特殊配置。
我试过修改script的innerHTML,但问题根源显然在type属性上,完全不知道该怎么阻止模板引擎的这种自动修改行为。
内容的提问来源于stack exchange,提问作者avallet
相关产品推荐
相关产品推荐

