我有一个 iframe,可以根据请求加载不同的 svelte 应用程序。 我需要从其中加载的 svelte 应用程序访问包含 iframe 的文档中定义的变量。 这样可以吗?
可能不是。除非当前文档和 iframe 源同源,否则 JS 不允许访问 iframe 的内容。
window.postMessage
并监听外部的 message
事件。还可以使用相同的机制将消息发送到框架中(有关更多信息,请参阅链接文档)。这样就可以跨帧边界进行通信。
重要警告:
任何窗口都可以随时在任何其他窗口上访问此方法,无论文档在窗口中的位置如何,都可以向其发送消息。因此,任何用于接收消息的事件侦听器必须首先使用
和可能的origin
属性检查消息发送者的身份。source