CQ5删除阻止渲染的JavaScript
作者:互联网
我正在处理此文档,以删除阻塞的js:
但是,对于CQ5,我们通过以下方式包含js:
<cq:includeClientLib js="headlibs"/>
如何修改脚本标记,例如:
<script async src="my.js">
因此,我可以删除阻止JS.
解决方法:
cq:includeClientLib没有任何选项可以执行此操作.您可以尝试使用com.day.cq.widget.HtmlLibraryManager界面获取JS文件的路径,标签是该界面的便捷包装.
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()还采用了一个最小化的附加参数(布尔值)来提供该缩小后的文件的路径.
标签:aem,adobe,css,javascript,java 来源: https://codeday.me/bug/20191028/1955996.html