Kyr*_*tap 5 html javascript iframe sandbox same-origin-policy
现在我有 3 个 iframe,名称为“iframe1”、“iframe2”和“iframe3”,它们都与父级同源,我可以控制双方。其中一个 iframe 向父级发送一些 postMessage。
我想实现两件事:
我在所有 iframe 上都使用了 HTML5 沙箱属性,允许除“允许同源”之外的所有内容。我成功地无法再从 iframe 访问父对象,问题是我无法识别发送 postMessage 的 iframe 的元素。那是因为“e.source.name”(e 是接收到的消息返回的事件对象)触发了沙箱访问冲突的 SecurityError 并且缺少“allow-same-origin”标志。
我测试了其他事件对象的属性:
e.origin - 返回 null。
e.source - 返回 Window 对象,但无法访问其属性和方法
问题是: 我怎样才能知道向父级发送 postMessage 的 iFrame 元素的名称并防止 iFrame 能够访问父级的对象?也许还有其他解决方法而不在 iframe 上使用沙箱?
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |