我目前正在liferay iframe portlet 中加载一个网站。
单击网站中的其中一个链接后,会生成一个弹出窗口,该弹出窗口会加载到新的浏览器选项卡中。有没有办法阻止链接作为弹出窗口打开,而是在 portlet 内部打开?
这就是使用 iframe 的缺点。这个问题实际上与liferay完全无关——或者至少是独立的。当您以独立于生命线的方式改写它时,您可能会获得更多的听众。
正如您提到 Liferay,您可能想尝试 WebProxy portlet:在这里您可以处理服务器生成的 HTML 并更改/重写打开新窗口的代码。但这绝对比“仅仅”使用 iframe 更复杂。此外,使用 WebProxy,它是请求外部页面、重写并将其发送到浏览器的服务器。使用 iframe,浏览器直接连接到您的第三方系统。
如果两个站点都位于同一个域中,您可能很幸运能够处理 DOM(例如重写 iframe 页面)。但是其他人必须回答有关如何执行此操作以及跨 iframe 边界更改文档时对 javascript 安全性的影响的详细信息