在 AEM 中获取页面中的所有对话框

get all dialogs in page in AEM

是否有任何直接的方法来获取页面上拖动的所有组件的对话框对象。

例如:当我们加载页面时,如果页面上有文本、图像等任何组件,我可以获得对话框。请推荐?

是的,这是可能的。附加一个侦听器,用于侦听 WCM 触发的 editablesready 事件。使用 CQ.WCM#getEditables() 方法获取页面上的所有可编辑项,然后获取每个可编辑项的对话框(如果存在)。

示例代码如下。

CQ.WCM.on('editablesready', function() {
    var editables = CQ.WCM.getEditables();

    for(var path in editables) {
        var editable = editables[path];
        try {
            console.log(editable.getEditDialog());
            //Do stuff
        } catch(e) { }
    }
});