iframe的内容未仅在iframe中打开

Content of iframe not opening in iframe only

本文关键字:iframe      更新时间:2024-01-22

我有一个基页,在其中使用不同域的Iframe。内容被呈现,但若用户点击iframe内呈现的任何链接,它就会像正常页面一样打开。我希望它只在Iframe中打开。

作为信息,我可以控制我的基本页面以及托管在不同域上的应用程序。。我想在iframe这样做。

简单地说,在iframe中打开的整个网站,用户应该只能在ifame中完成他的工作。点击iframe内的任何链接都不应在浏览器中打开。这样我就可以创建一个中心应用程序,它可以在iframe中打开我的应用程序(Existing)。如果用户单独打开应用程序,它也可以工作。

如果您不能访问iFrame页面的代码,您就没有机会这样做。

请参阅:https://en.wikipedia.org/wiki/Cross-site_scripting

从技术上讲,您可以使用.postmessage()获取iframe中的子内容,以便在单击按钮时向父级发送消息以更改iframe源。

注意,只有当您能够控制在iframe中呈现的子代码时,这才会起作用,我无法从您的问题中判断出这一点。

例如,在您的子站点中,在iframe内部,当您单击iframe站点内部时,需要将代码发送到父页面(iframe外部):

self.parent.postMessage("stringSayingDoSomething", "*");

然后,您的父站点设置了一个事件侦听器来接收消息并执行操作。。这个动作可能是在家长方面做一些事情。。或者,将消息发送回子站点以执行以下操作:

window.addEventListener("message", receiveMessage, false);
            function receiveMessage(event) {
                switch (message) {
                    case "stringSayingDoSomething":
                        DoMyFunctionNowThatChildFrameHasToldMeTo();
                        break;

以下是另一个关于堆栈溢出的问题:从父级到子级iframe 的跨源通信