我正在从事一个涉及在 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 文件
但是当我尝试使用“文件:”作为返回父 iframe 的邮寄消息中的域时,我收到“无效参数”错误。
有人可以帮忙吗? “本地磁盘html”的域应该是什么?任何提示将不胜感激。
干杯
最佳答案
我不知道如何指定"file",我猜没有办法,因为它没有多大意义。 origin 的目的是防止其他(可能是恶意的)页面看到您的消息,但是如果 origin 只是硬盘上的任何文件,则任何人都可以通过创建带有框架的 html 文件并从中加载您的网页来看到它你的服务器。所以指定"file"(即使有办法)并不比指定“*”更安全,所以只需使用“*”就可以省去麻烦。
关于javascript - 在本地磁盘上的父 HTML iframe 的 javascript postmessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466376/