带有额外属性的script标签用于django.forms.Media
项目描述
用法
使用此方法通过 forms.Media 插入一个带有额外属性(如 id 和 data-* 以支持CSP兼容的数据注入)的script标签。
from js_asset import JS
forms.Media(js=[
JS("asset.js", {
"id": "asset-script",
"data-answer": "42",
}),
])
渲染的媒体标签(通过 {{ media.js }} 或 {{ media }})现在将包含一个如下的script标签,没有换行符
<script type="text/javascript" src="/static/asset.js"
data-answer="42" id="asset-script"></script>
属性将自动转义。数据属性现在可以在 asset.js 中访问
var answer = document.querySelector("#asset-script").dataset.answer;
此外,由于在不同支持的Django版本中(旧版不考虑 INSTALLED_APPS 中 django.contrib.staticfiles 的存在)static 的实现不同,提供了一个 js_asset.static 函数,该函数会自动执行正确的事。
在添加外部脚本资源时,应将 static=False 传递给 JS 对象,以避免通过 static() 传递脚本 URL。在这种情况下,您可能希望添加 defer 或 async,也许还需要添加 integrity 和 crossorigin 属性。请注意,在使用 Django 4.1 之前的 Django 时,布尔属性没有得到良好支持,因此请按以下方式指定:
JS(
"https://cdn.example.com/script.js",
{"defer": "defer"},
static=False,
)
兼容性
撰写本文时,此应用程序与 Django 1.8 及更高版本兼容(包括 Django master 分支),但请参阅 tox 配置 以获取最终答案。
项目详情
关闭
django_js_asset-2.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c57a82cae2317e83951d956110ce847f58ff0cdc24e314dbc18b35033917e94 |
|
MD5 | 23ffa09cbeff00163360467375cfd5be |
|
BLAKE2b-256 | 28bb04accb19b0c0b6d835a393c20f04dfc379648e8cd6654c045e4d843ad527 |
关闭
django_js_asset-2.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7ef3e858e13d06f10799b56eea62b1e76706f42cf4e709be4e13356bc0ae30d8 |
|
MD5 | 659f5be139ddf5182deea423ae6f3a1c |
|
BLAKE2b-256 | dc4d5bb8c351f2515a616576a4218c736af081edf0dd4d1eead1c7e880f74c0e |