我收到以下错误:
VM13430 editor.js:25678Uncaught TypeError: Cannot read property 'shared' of undefined
在Granite UI中的AEM 6.1中以作者模式加载页面时。它在以下行失败:
var isLockOwner = true;
if(info.status.isLocked){
isLockOwner = ns.ContentFrame && ns.ContentFrame.contentWindow.CQ.shared.User.data.userID === info.status.lockOwner;
}
在调试ns.ContentFrame.contentWindow.CQ
时,缺少'CQ'。
在检查Geometrixx演示内容时,'CQ'是一个函数,我假设是jQuery的jQuery解析。
因此,如果锁定,我无法解锁页面。虽然我可以在页面网格视图中解锁页面。
如何确保我可以为'ns.ContentFrame.contentWindow'加载CQ?
答案 0 :(得分:1)
在clientlibs目录的.content.xml
中添加以下内容:
embed="[underscore,granite.shared,cq.shared,jquery.jcarousel,cq.foundation,cq.foundation-main,jquery-ui,cq.jquery.ui,personalization,personalization.core,personalization.core.kernel,personalization.clientcontext.kernel,personalization.stores.kernel,personalization.kernel,personalization.clientcontext,personalization.stores,cq.social.tagging,cq.ckeditor,cq.social.scf,cq.social.author.hbs.message,cq.social.author.hbs.messagebox,cq.social.author.hbs.composemessage,cq.social.author.hbs.userchooser,cq.social.author.hbs.comments,cq.social.author.hbs.forum,cq.social.author.hbs.journal,cq.social.author.hbs.rating,cq.social.author.hbs.qna,cq.social.author.hbs.voting,cq.social.author.hbs.reviews,cq.social.author.hbs.search,cq.social.author.hbs.calendar,cq.social.hbs.socialgraph,cq.social.calendar,cq.social.calendar.eventbasics,cq.social.calendar.fullcalendar,cq.social.author.hbs.socialgraph.following,cq.social.author.hbs.activitystreams,cq.social.commons.infiniscroll]"
答案 1 :(得分:0)
基本上,这里的问题是您需要包含一个clientLib-cq.shared
根据Adobe的说法: ” 编辑器客户端库假定存在cq.shared命名空间 在内容页面中,如果没有,则出现JavaScript错误Uncaught TypeError:无法读取未定义的属性“ shared”。
所有示例内容页面都包含cq.shared,因此基于它们的任何内容都会自动包含cq.shared。但是,如果您决定从头开始创建自己的内容页面而不将其基于示例内容,则必须确保包括cq.shared命名空间。 “
由于某种原因,嵌入对我不起作用,但是从基本html调用clientLib似乎可行
<sly data-sly-use.clientlib="granite/sightly/templates/clientlib.html" />
<sly data-sly-call="${clientlib.js @ categories='cq.shared'}"/>