【问题标题】:How to open a folder in a new tab in Alfresco using AJAX?如何使用 AJAX 在 Alfresco 的新选项卡中打开文件夹?
【发布时间】:2016-10-16 22:48:07
【问题描述】:

我的custom-toolbar.js 中有View Policy 按钮。当我单击按钮时,它必须在新选项卡中打开 Policy 文件夹。这是我到目前为止所做的。

    /**
     * View Policy button click handler  
     * 
     * @method onViewDocument
     * @param e {object} DomEvent
     * 
     */
    onViewPolicy: function DLTB_onViewPolicy(e, p_obj)
    {                   
        var newPath = this.currentPath + "/Policy",

        filter = this.currentFilter;
        filter.filterData = newPath;
        // Refresh the Document Library
        YAHOO.Bubbling.fire("changeFilter", filter);

    }

这将在同一选项卡中打开文件夹。在这种情况下如何使用 Alfresco.util.Ajax.request 并使其在新选项卡中打开?如果 Policy 文件夹没有返回任何内容,是否也可以显示错误消息?

【问题讨论】:

    标签: alfresco yui alfresco-share


    【解决方案1】:

    如果您只想在新标签中打开路径,您只需使用window.open(url);

    如果您想通过调用 webscript 进行验证,可以使用Alfresco.util.Ajax.request

    示例代码:

     Alfresco.util.Ajax.request({
                    type: "GET",
                    url: Alfresco.constants.PROXY_URI.replace('share/proxy/alfresco', 'alfresco/service') + {webscript url},
                    dataType: 'text',
                    headers: {
                        Accept: "application/json",
                        "Access-Control-Allow-Origin": "*",
                        "Access-Control-Allow-Methods": "GET"
                    },
                    successCallback: {
                        fn: function(response) {
                //collect the output.
                //if json
                output = JSON.parse(response.serverResponse.responseText);
                var result =output["result"];
                //if html is the output
                output = (response.serverResponse.responseText);
                var result =/<body.*?>([\s\S]*)<\/body>/.exec(output)[1];//to get contents inside body tag
                if(result says folder is present)
                {
                window.open(newurl);
                }
                else
                {
                //show error popup.
                }
                        },
                        scope: this
                    },
                    failureMessage: "",
                    execScripts: true
                });
    

    【讨论】:

    • 我无法直接将 newPath 分配给 url,除非我更改过滤器,否则它会返回 404。我应该怎么做?我是 Alfresco 的新手。
    • 我无法直接将 newPath 分配给 url,除非我更改过滤器,否则它会返回 404。我应该怎么做?我是 Alfresco 的新手。
    • @BlueStar :我也是初学者。我可以提供一种解决方法来解决您的问题。请尝试以下获取网址url =window.location.href.substr(0,window.location.href.indexOf("&amp;")-3)+"%2FPolicy%7C&amp;page=1";
    猜你喜欢
    • 2021-09-23
    • 2017-09-28
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多