我有一个窗口和一个iFrame。
在iFrame中,我使用一些数据执行了postMessage,以通知父级更改位置。 帖子功能很好用。
父窗口接收良好。 出于安全原因,我在使用event.data更改位置之前先进行了测试。
我做一个:
if (event.origin === document.location.origin && event.source === frame.contentWindow)
此条件的第一部分为true,所以没有问题。 但是第二部分给出了false,因为:
在event.source中,我有一个窗口对象,其中包含一些无用的元素:
您会看到URL https:// ....,但是在前后有一些卑鄙的元素。
在frame.contentWindow
中,我只有URL like: « https://.... »
。
因此,要使代码正常工作,我需要使用first [0] of event.source
:
if (event.origin === document.location.origin && event.source[0] === frame.contentWindow)
但是为什么我需要这样做?
为什么event.source不能简单地给我像frame.contentWindow
这样的URL?
谢谢