4

我正在从事一个项目,该项目涉及在 iframe 中托管网页,而托管父 iframe 位于本地磁盘上的 HTML 文件中,例如在 c:\; 而内部托管的 iframe 在某个服务器上。这两个网页需要互相发送消息。

父 iframe(在本地磁盘上)将消息发送到内部框架没有问题,因为它知道内部 iframe 的域;

但是当内部 iframe 需要将消息回传到父 iframe 时,它​​需要提供在本地磁盘上的父 iframe 的域。

我在内部 HTML 中尝试了以下操作以将消息发送到其位于本地磁盘上的父 IFrame:

*var messageToSend = {
                        jsonrpc: "2.0",
                        result: [result]
                    };
window.parent.postMessage(JSON.stringify(messageToSend), "file://");*

// window.parent IFrame 是本地磁盘上的 HTML 文件

但是,当我尝试使用“file:”作为 postmessage 中的域返回父 iframe 时,我收到“Invalid argument”错误。

有人可以帮忙吗?“本地磁盘html”的域应该是什么?任何提示将不胜感激。

干杯

4

1 回答 1

6

我不知道如何指定“文件”,我猜没有办法,因为它没有多大意义。来源的目的是防止其他(可能是恶意的)页面看到您的消息,但如果来源只是硬盘上的任何文件,任何人都可以通过创建带有框架的 html 文件并从你的服务器。所以指定“文件”(即使有办法)并不比指定“*”更安全,所以只需使用“*”就可以省去麻烦了。

于 2011-03-31T04:31:51.600 回答