Liferay:动态设置Portlet的标题

本文介绍了一种使用JavaScript自定义Liferay Portlet标题的方法,适用于同一页面存在多个Portlet的情况,通过查找特定元素更新标题内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Portle的标题可以事先设置,但如果是多个实例的话,如果希望是画面显示的设置一个约定的名字的话.

可以用JavaScript来做. 根据生成的HTML来写js.

 

由于一个画面可能有多个Portlet,所有不能直接根据portlet-title-text这个css来取得对象.

需要先根据确定是这个portlet后往下找就可以了.

JS例子:

<script type="text/javascript">
<!--

<liferay-portlet:namespace/>setPortletTitle();

function <liferay-portlet:namespace/>setPortletTitle() {
    try {
        var portletHeader = document.getElementById("portlet_<%=PortalUtil.getPortletId(renderRequest) %>");
        var portletTopper = getChildByCssClass(portletHeader, "portlet-topper");
        if (portletTopper != "") {
            var portletTitle = getChildByCssClass(portletTopper, "portlet-title");
            if (portletTitle != "") {
                var title = getChildByCssClass(portletTitle, "portlet-title-text");
                title.innerHTML = "<%=portlet_name%>";
            }
        }
    } catch (e) {
        
    }
}


function getChildByCssClass(element, cssClass) {
    var children = element.childNodes;
    for (var ix = 0; ix < children.length; ix++) {
        if (children[ix].className == cssClass) {
            return children[ix];
        }
    }
}
//-->
</script>

 

 其实最简单是用服务器端用java设置,renderResponse.setTitle("Portlete title");

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值