合并脚本/ Javascript在动态加载的JSP中

时间:2017-03-02 10:33:33

标签: javascript liferay alloy-ui

我目前正在使用Ajax调用动态加载各种JSP。但是,一旦加载了JSP,内部包含的Javascript就无法正常工作。我假设这是因为内部的脚本尚未被解析。

为此我找到了模块" aui-parse-content"根据其描述,它应该能够解析包含的脚本。

  

ParseContent实用程序 - 解析节点的内容,以便该节点中包含的所有javascript将根据它出现的顺序执行。

然而,我无法让它发挥作用。这是我的AUI:脚本供参考。

    <portlet:resourceURL var="viewContentURL">
            <portlet:param name="jsp" value="<%= tmp %>"/>
    </portlet:resourceURL>

        <div id="<portlet:namespace />jspcontent"></div>

        <aui:script use="aui-base, aui-io-request,aui-parse-content, aui-node"> 
                var url = '<%= viewContentURL.toString() %>';
                AUI().io.request(
                    url,
                    {
                        on:{ 
                            success: function(){
                                var message = this.get('responseData');
                                //alert(message);
                                AUI().one('#<portlet:namespace />jspcontent').html(message);
                                AUI().one('#<portlet:namespace />jspcontent').plug(AUI().Plugin.ParseContent);
                            },
                            failure: function(){
                                alert("An error occured");
                            }
                        }
                    }

                );  
        </aui:script>

提前谢谢!

-John

编辑: 由于我前一段时间找到了修复程序而其他人可能遇到同样的问题,这就是我如何使用aui-parse-content工作:

    on:{ 
                            success: function(){
                                var message = this.get('responseData');
                                var tmp = A.one('#<portlet:namespace />jspcontent');
                                tmp.html(message);

                                tmp.plug(A.Plugin.ParseContent);
                                tmp.ParseContent.parseContent(message);
                            },
    }

1 个答案:

答案 0 :(得分:0)

我刚刚发现了一个修复程序,其他人可能会遇到同样的问题,这就是我如何使用aui-parse-content工作:

on:{ 
                        success: function(){
                            var message = this.get('responseData');
                            var tmp = A.one('#<portlet:namespace />jspcontent');
                            tmp.html(message);

                            tmp.plug(A.Plugin.ParseContent);
                            tmp.ParseContent.parseContent(message);
                        },
}

我还修改了我的原帖以反映我的发现