如何最大化Liferay portal中的iframe portlet?

如何最大化Liferay portal中的iframe portlet?,iframe,liferay,portlet,maximize,easyxdm,Iframe,Liferay,Portlet,Maximize,Easyxdm,我添加了一个iframeportlet,并将应用程序的URL提供给了我的Liferay门户 当我单击“登录”按钮/或应用程序时: 我想让iframeportlet自动最大化和/或导航 转到另一页 我不想在Liferay门户中添加页面,然后给出 URL,而当我单击portlet时,应用程序必须出现 在新页面或最大化模式下 我如何做到这一点 如果您对iframe内的应用程序具有控制权(代码控制),并且它们来自同一FQDN,则可以执行此操作 在liferay中创建两个页面,如/home&/logi

我添加了一个iframeportlet,并将应用程序的URL提供给了我的Liferay门户

当我单击“登录”按钮/或应用程序时:

  • 我想让iframeportlet自动最大化和/或导航 转到另一页
  • 我不想在Liferay门户中添加页面,然后给出 URL,而当我单击portlet时,应用程序必须出现 在新页面或最大化模式下

我如何做到这一点

如果您对iframe内的应用程序具有控制权(代码控制),并且它们来自同一FQDN,则可以执行此操作

在liferay中创建两个页面,如
/home
&
/login
,这两个页面都将使用不同的URL配置iframe portlet

  • /home
    :这将显示您的初始iframe portlet,单击应用程序中的登录按钮,您可以给出
    /login
    页面的URL,该页面将具有一个应用程序布局,iframe将填充整个页面
  • /login
    :此页面将在您单击“登录”后显示在应用程序中的页面的iframe中配置URL
  • 您可以在iframe内的应用程序中为单击login后出现的第二个页面设置一个onLoad脚本,当第二个页面加载到iframe内时,该脚本将最大化您的iframe

    您可以使用钩子在iframeportlet中拥有一个脚本,以根据其中的内容动态增加iframe的高度和宽度

    但要使第二种和第三种方法起作用,您需要Liferay和iFrame内的应用程序共享相同的FQDN,否则由于跨域脚本安全性,您的脚本将无法工作

    对于第二种和第三种方法,以下是一些解决方案:


    如果您无法控制子应用程序,并且具有不同的FQDN,该怎么办? 如果您无法控制iFrame中的子应用程序,那么我的朋友,您在这里就不走运了,因为iFrame无法访问子页面(由于安全原因),子页面也不知道有关父页面的任何信息

    下面是另一个链接,它解释了很多内容,并提供了一些解决方案,这些解决方案允许跨域消息传递:


    希望这有帮助。

    请显示您已尝试运行的代码,直到现在没有代码。拖动iframeportlet,并在配置中添加和保存应用程序的URL。就这样。但是portlet被限制在一个给定的空间中,我希望它显示整个页面。您没有尝试过为iframe指定高度和宽度吗?我尝试过,但它仍然在一个有限的空间中。我想要的是,当我点击portlet时,它应该自动最大化。那么,登录按钮实际上在哪里?您可能需要添加jQuery magic来增加iframe的大小或导航到其他page.Hi。我无法控制应用程序。。考虑应用程序/网站到一个第三方工具,如脸谱网或YouTube,当我点击登录/或任何按钮,portlet必须调整大小到满页已经编辑了我的答案,但或多或少是不可能的,因为它需要对儿童应用程序的一些控制。