在本地磁盘上的父HTML iframe的javascript postmessage上
我正在从事一个项目,该项目涉及在iframe中托管一个网页,而托管父iframe位于本地磁盘上的一个HTML文件中,比如在c:\;而内部托管的iframe位于某些服务器上。这两个网页需要互相发送postmessage 父iframe(本地磁盘上)将消息后发到内部帧没有问题,因为它知道内部iframe的域 但是当内部iframe需要将消息传递回父iframe时,它需要提供位于本地磁盘上的父iframe的域 我在内部HTML中尝试了以下操作,以将消息传递到其位于本地磁盘上的父IFrame:在本地磁盘上的父HTML iframe的javascript postmessage上,javascript,file,local,postmessage,Javascript,File,Local,Postmessage,我正在从事一个项目,该项目涉及在iframe中托管一个网页,而托管父iframe位于本地磁盘上的一个HTML文件中,比如在c:\;而内部托管的iframe位于某些服务器上。这两个网页需要互相发送postmessage 父iframe(本地磁盘上)将消息后发到内部帧没有问题,因为它知道内部iframe的域 但是当内部iframe需要将消息传递回父iframe时,它需要提供位于本地磁盘上的父iframe的域 我在内部HTML中尝试了以下操作,以将消息传递到其位于本地磁盘上的父IFrame: *var
*var messageToSend = {
jsonrpc: "2.0",
result: [result]
};
window.parent.postMessage(JSON.stringify(messageToSend), "file://");*
//父IFrame是本地磁盘上的HTML文件
但是,当我尝试使用“file:”作为返回父iframe的postmessage中的域时,我得到了一个“Invalid argument”错误
有人能帮忙吗?“本地磁盘html”的域应该是什么?如有任何提示,将不胜感激
干杯我不知道如何指定“文件”,我猜没有办法,因为它没有多大意义。源代码的目的是防止其他(可能是恶意的)页面看到您的消息,但是如果源代码只是硬盘上的任何文件,任何人都可以通过创建一个带有框架的html文件并从服务器加载您的网页来看到它。因此,指定“file”(即使有办法)并不比指定“*”更安全,所以只需使用“*”就可以省去麻烦 因为这不是一个词。如果您想被认真对待,请认真对待。使用一些代码可能会有所帮助……”……将消息发布到文件中的页面:URL当前要求targetOrigin参数为“*”。文件://不能用作安全限制;将来可能会修改此限制。”