我需要在defer
“位置”中声明外部 js。我认为这
<r:external uri="http://cdn.connect.mail.ru/js/loader.js" disposition="defer"/>
会起作用,但它只是<script...
在调用它的地方放置代码。
如何使用 taglib 在延迟位置声明外部 js?
Grails 2.0+,资源插件
正如您所描述的,不幸的是 r:external 标记似乎不尊重 JavaScript 的默认配置,即“延迟”。此外,根据文档,r:external标记不提供“处置”属性来明确声明这一点。r:script
标记正确地
将脚本放置在正文的底部,但它不提供“src”属性,因为它仅用于“内联”JavaScript。
我认为解决这个缺失功能的最好方法是在 ApplicationResources.groovy 文件中定义一个资源模块
modules = {
...
mail_loader {
resource url: "http://cdn.connect.mail.ru/js/loader.js"
}
...
然后使用您的 TagLib 要求它。
out << r.require(module: "mail_loader")
如前所述,JavaScript 资源的默认配置是“延迟”,因此您无需在您的案例中显式定义配置。