【发布时间】:2015-01-26 20:35:27
【问题描述】:
我正在处理此文档以删除阻塞 js:
但是对于 CQ5,我们通过以下方式包含 js:
<cq:includeClientLib js="headlibs"/>
如何修改脚本标签,如:
<script async src="my.js">
所以我可以移除阻塞的 JS。
【问题讨论】:
标签: java javascript css adobe aem
我正在处理此文档以删除阻塞 js:
但是对于 CQ5,我们通过以下方式包含 js:
<cq:includeClientLib js="headlibs"/>
如何修改脚本标签,如:
<script async src="my.js">
所以我可以移除阻塞的 JS。
【问题讨论】:
标签: java javascript css adobe aem
cq:includeClientLib 没有任何选项可以执行此操作。你可以尝试使用com.day.cq.widget.HtmlLibraryManager接口来获取JS文件的路径,标签是a是这个接口的方便包装器。
com.day.cq.widget.HtmlLibraryManager clientlibmanager = sling.getService(com.day.cq.widget.HtmlLibraryManager.class);
if(clientlibmanager != null)
{
String[] categoryArray = {"headlibs"};
java.util.Collection<com.day.cq.widget.ClientLibrary> libs = clientlibmanager.getLibraries(catArray,com.day.cq.widget.LibraryType.JS,false,false);
for(com.day.cq.widget.ClientLibrary lib : libs) {
out.write("<script async type=\"text/javascript\" src=\""+lib.getIncludePath(com.day.cq.widget.LibraryType.JS)+"\"></script>");
}
} else {
out.write("clientlib manager is null");
}
getIncludePath() 方法还需要一个附加参数 minified(布尔值)来提供缩小文件的路径。
【讨论】: