我需要在defer
“location”中声明外部js。我以为是
<r:external uri="http://cdn.connect.mail.ru/js/loader.js" disposition="defer"/>
可以正常运行,但只需将<script...
代码放在调用它的位置。
如何使用taglib在延迟位置声明外部js?
Grails 2.0+,资源插件
答案 0 :(得分:4)
正如您所描述的那样,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资源的默认处置是“延迟”,因此您无需在案例中明确定义处置。