带有django.forms.media附加属性的脚本标记
django-js-asset的Python项目详细描述
用法
使用此项通过forms.Media插入包含附加 属性(如csp兼容数据的id和data-*) 注射。):
fromjs_assetimportJSforms.Media(js=[JS("asset.js",{"id":"asset-script","data-answer":"42",}),])
呈现的媒体标记(通过{{ media.js }}或{{ media }}将 现在包含一个脚本标记,如下所示,没有换行符:
<scripttype="text/javascript"src="/static/asset.js"data-answer="42"id="asset-script"></script>
属性将自动转义。数据属性现在可能是 在asset.js中访问:
varanswer=document.querySelector("#asset-script").dataset.answer;
另外,因为static的实现在受支持的 Django版本(旧版本不接受 django.contrib.staticfiles在INSTALLED_APPS帐户中),a js_asset.static函数的作用是正确的 自动。
添加外部脚本资源时,应将static=False传递给 对象JS,以避免通过static()传递脚本url。 在本例中,您可能需要添加defer或async,并且 还有integrity和crossorigin属性。请注意 布尔属性不受正确支持,请将其指定为 如下:
JS( "https://cdn.example.com/script.js", {"defer": "defer"}, static=False, )
兼容性
在编写本应用程序时,它与django 1.7兼容,并且更好 (包括Django Master分公司),但请查看 Travis CI build用于 明确的答案。