未定义Liferay.PortletURL

未定义Liferay.PortletURL,liferay,liferay-6,liferay-aui,Liferay,Liferay 6,Liferay Aui,要实施: 我有两个页面,每个页面有一个portlet。单击链接后,我想从第一个页面portlet移动到另一个页面portlet。 为此,我写了: <aui:script> function openCompanyPage(companyId) { AUI().use( 'liferay-portlet-url', 'aui-resize-iframe', function(A) {

要实施: 我有两个页面,每个页面有一个portlet。单击链接后,我想从第一个页面portlet移动到另一个页面portlet。 为此,我写了:

<aui:script>
 function openCompanyPage(companyId) {   
     AUI().use(
             'liferay-portlet-url',
             'aui-resize-iframe',
             function(A) {
                 var navigationURL;

函数openCompanyPage(companyId){
AUI()使用(
“liferay portlet url”,
“aui调整iframe的大小”,
职能(A){
var导航url;
var-portletURL=Liferay.portletURL.createRenderURL();

var url=themeDisplay.getLayoutURL();
setParameter(“employerId”,companyId);
setPortletId(A.one(“#custsupportletId”);
navigationURL=portletURL.toString();
window.location=导航URL;
}
);
但由于粗体行中未定义Liferay.PortletURL,所以我得到了错误。 我已经提供:

    <%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
    <%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet"%>
<%@ taglib uri="http://liferay.com/tld/util" prefix="liferay-util"%>

请告诉我可能的原因

或 创建呈现portlet URL的其他方法是什么。

更新: 我用暴力解决了这个问题

之前:

脚本中的更改:

<script>
     function openCompanyPage(companyId) {   
         AUI().use(**'liferay-portlet-url'**,
                 function(A) {
                     var navigationURL;
        var portletURL = Liferay.PortletURL.createRenderURL();
                     var url = themeDisplay.getLayoutURL();               
                    portletURL.setParameter("employerId", companyId);
                    portletURL.setPortletId(A.one('#custSupportPortletId'));
                    navigationURL = portletURL.toString();
                    window.location = navigationURL;
                }
        );

    </script> 

函数openCompanyPage(companyId){
AUI()。使用(**'liferay-portlet-url'**,
职能(A){
var导航url;
var portletURL=Liferay.portletURL.createRenderURL();
var url=themeDisplay.getLayoutURL();
setParameter(“employerId”,companyId);
setPortletId(A.one(“#custsupportletId”);
navigationURL=portletURL.toString();
window.location=导航URL;
}
);
这解决了我的问题。 我不确定这是否是解决这个问题的完美办法。
专家请告诉我们。

您能否验证是否缺少$theme.include($top\u head\u include)在主题中,您可以检查页面中是否存在任何其他javascript错误吗?只有一个错误:TypeError:a为空。我认为此错误仅与firebox有关。我认为该错误阻止加载其他模块。该问题仅适用于firefox。而非其他浏览器
<a onclick="openCDPPage('${individual.individualId}')">${individual.individualName}</a>
<script>
     function openCompanyPage(companyId) {   
         AUI().use(**'liferay-portlet-url'**,
                 function(A) {
                     var navigationURL;
        var portletURL = Liferay.PortletURL.createRenderURL();
                     var url = themeDisplay.getLayoutURL();               
                    portletURL.setParameter("employerId", companyId);
                    portletURL.setPortletId(A.one('#custSupportPortletId'));
                    navigationURL = portletURL.toString();
                    window.location = navigationURL;
                }
        );

    </script>