我添加了一个iframe portlet,并将应用程序的URL提供给了Liferay门户网站。
当我点击登录按钮/或应用程序时:
我如何实现这一目标?
答案 0 :(得分:2)
如果您对iframe内的应用程序拥有控制权(代码控制权)并且它们来自同一个FQDN,则可以执行此操作。
在liferay中创建2页,例如/home
& /login
,两者都可以使用不同的URL配置iframe portlet。
/home
:这会显示您的初始iframe-portlet,点击您应用中的登录按钮,您可以为/login
页面提供具有单应用布局和iframe的网址填写整页。/login
:点击登录后,此页面将在您的应用中显示的网页的iframe中配置网址。OR
您可以在iframe中为第二页显示点击登录后显示的onLoad脚本,当第二页加载到iframe中时,此脚本会最大化您的iFrame。
OR
您可以使用钩子在iframe portlet中添加脚本,以根据内容中的内容动态增加iFrame的高度和宽度。
但对于第二个&第三种方法,你需要Liferay和iFrame中的应用程序共享相同的FQDN,否则你的脚本由于跨域脚本安全性而无法工作。
对于方法的第二个和第三个,这里有一些解决方案:
如果您无法控制iFrame中的子应用程序,那么我的朋友您在运气不好,因为iFrame无法访问子页面(由于安全原因),也没有子页面对父母一无所知。
这是另一个解释很多的链接,并提供了一些基于easyxdm的解决方案,允许跨域消息传递:
希望这有帮助。