切换到其他页面时重新加载ContentFinder

时间:2014-06-22 04:45:46

标签: cq5

我有自定义内容搜索选项卡,它接受页面路径,并在此基础上从DAM获取资产,现在,如果我移动到另一个页面,假设从/en/home.html到/en/product.html,contentfinder仍然显示与/en/home.html相关的记录,直到我不重新加载整个页面。

移动到其他页面时,有没有办法自动重新加载内容搜索选项卡。

由于

1 个答案:

答案 0 :(得分:0)

两种实现方式: 将下面的javascript代码放在页面层次结构或要重新加载内容查找器的页面上的第一种方法。

<script type="text/javascript">CQ.Ext.onReady(function() { CQ.WCM.getContentFinder().findByType("contentfindertab")[5].submitQueryBox.call(CQ.WCM.getContentFinder().findByType("contentfindertab")[5], this); }); </script>

这段代码的作用是什么? : 代码CQ.WCM.getContentFinder();提取内容查找器窗口,findByType(“contentfindertab”)将所有内容查找器选项卡作为数组对象提取,因为页面是第6个选项卡,并且基于数组索引,[5]值将提供页面内容查找器选项卡。

代码submitQueryBox.call提交页面查询框,因此刷新结果。

实现相同目标的第二种方法是覆盖默认的pages.js,而allowPaths则提供不需要刷新内容查找器的路径。如果你看到OOTB pages.js它允许路径为"allowedPaths": [ "/content/*", "/etc/scaffolding/*", "/etc/workflow/packages/*" ] 当你导航到任何页面时,下面的代码被执行CQ.wcm.ContentFinder.loadContentWindow('tonavigationpath');如果allowedPaths包含在allowedPaths中,它会检查allowedPaths,例如/ content / *表示来自/ content /的任何url,内容查找器不会被重新加载,否则内容查找器将被重新加载。这里通过说内容查找器重新加载我的意思是内容查找器作为一个完整的窗口而不是搜索结果。

要了解更多详细信息,请参阅crx中的/libs/wcm/extensions/contentfinder/pages.js.

希望这会有所帮助。如果有帮助,请接受答案。