带有django.forms.media附加属性的脚本标记

django-js-asset的Python项目详细描述


https://travis-ci.org/matthiask/django-js-asset.svg?branch=master

用法

使用此项通过forms.Media插入包含附加 属性(如csp兼容数据的iddata-*) 注射。):

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.staticfilesINSTALLED_APPS帐户中),a js_asset.static函数的作用是正确的 自动。

添加外部脚本资源时,应将static=False传递给 对象JS,以避免通过static()传递脚本url。 在本例中,您可能需要添加deferasync,并且 还有integritycrossorigin属性。请注意 布尔属性不受正确支持,请将其指定为 如下:

JS(
    "https://cdn.example.com/script.js",
    {"defer": "defer"},
    static=False,
)

兼容性

在编写本应用程序时,它与django 1.7兼容,并且更好 (包括Django Master分公司),但请查看 Travis CI build用于 明确的答案。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java筛选hibernate中引用的属性   java如何在Bluej中创建以long(integer)为参数的对象   java如何通过JDBC在access中创建新字段   java如何获取格式化日期?   用模板方法模式设计过滤器接口   java编译错误:缺少返回语句   java从JOOQ中的代码生成中排除特定的模式   java小程序生命周期:init()和start()与destroy()和stop()之间的实际区别是什么?   如何在Java中获取类的所有公共静态方法?   匿名onClick方法内的java活动结果   java如何从数千个具有良好性能的寄存器构建excel工作表?   标记Java中多级中断的适当使用   网络化基于Java的Telnet代理服务器,支持TLS。但为什么是java。网SocketException:连接被拒绝   java将magnolia升级到5.6.1,vaadin资源   springcloudnetflixhystrix中的java重写HystrixCommandSpect bean