gpt4 book ai didi

javascript - Liferay 6.2 - 从客户端加载 portlet

转载 作者:行者123 更新时间:2023-12-03 04:35:46 25 4
gpt4 key购买 nike

我使用 Liferay 6.2 作为我的门户平台。我的问题是是否有办法通过ajax加载portlet?仅提供 portlet ID。

例如

这是 portlet 信息:

<portlet>
<portlet-name>my_portlet</portlet-name>
<instanceable>false</instanceable>
<private-session-attributes>false</private-session-attributes>
<header-portlet-javascript>/js/my_portlet/app.js</header-portlet-
</portlet>

<portlet>
<portlet-name>my_portlet</portlet-name>
<display-name>My Portlet</display-name>
<portlet-class>com.ui.portlets.generic.GenericPortlet</portlet-class>
<init-param>
<name>view-template</name>
<value>/view.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<portlet-info>
<title>myportlet</title>
</portlet-info>
</portlet>

我想从客户端(通过 javascript)获取渲染 html portlet 及其所有参数和包含的文件?

最佳答案

这不是一个干净的方式,但我不知道其他任何事情。

有一个叫做小部件 URL 的东西。

您可以通过任何 portlet 的配置来获取它。

enter image description here

现在将此 URL 加载到 iFrame 中。您将实现在不刷新页面的情况下加载 protlet 的目标。

这是一些示例片段。

window.Liferay = window.Liferay || {};

Liferay.Widget = function(options) {
options = options || {};

var id = options.id || '_Liferay_widget'
+ (Math.ceil(Math.random() * (new Date).getTime()));
var height = options.height || '100%';
var url = options.url
|| 'http://www.liferay.com/widget/web/guest/community/forums/-/message_boards';
var width = options.width || '100%';

var html = '<iframe frameborder="0" height="' + height + '" id="' + id
+ '" src="' + url + '" width="' + width + '"></iframe>';
return html;
}

关于javascript - Liferay 6.2 - 从客户端加载 portlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43306016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com