javascript - 来自另一个域的 iFrame 如何摆脱自身?

标签 javascript iframe cross-domain

我正在为各种网站构建一个书签,其功能基本上如下:

  1. 用户导航至 foo.com(不受我控制的外部网站)
  2. 用户单击浏览器上的一个小书签,该小书签会从 foo.com 获取一些信息,并将其显示在 iframe 内的 bar.com 表单上
  3. 用户在 foo.com 内的 bar.com 内提交表单
  4. iframe 消失

问题是让 iFrame 自行删除。由于我无法访问另一个域中父域内的函数,因此我无法创建自定义函数parent.removeIFrame(),甚至无法执行window.top.location.reload()。我尝试了很多技术,但由于跨域脚本,所有这些技术都失败了。

我解决这个问题的方法是将 top.location.href 更改为我在 bar.com/back.html 构建的自定义页面,其中它所做的只是发送一个“history.back()”命令将用户弹回到原始页面。虽然很有创意,但我认为这不是一个非常优雅的解决方案。有更好的办法吗?

最佳答案

您可以尝试跨域消息传递的片段标识符。有一个 YUI 库:http://www.julienlecomte.net/blog/2007/11/31/

关于javascript - 来自另一个域的 iFrame 如何摆脱自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5643949/

相关文章:

javascript - 跨域脚本 - MSCRM 4.0 IFRAME 客户端 JavaScript

javascript - 是否可以在 HTML 文件中创建一个可以在同一 HTML 文件中编辑的 Javascript 对象?

javascript - 调整大小 :both behaves different when changing size in JS before first interaction

html - 响应式 iFrame 不适合容器

javascript - 在 iframe 中克隆的网站(并且禁用 JavaScript)

javascript - 是否可以从自身或服务器端隐藏/关闭 iframe?

security - IE 11 第一方 session cookie 在 iframe 中丢失

javascript - 控制台错误消息中未指定行号。该怎么办?

javascript - 关闭浏览器窗口而不等待ajax响应的最佳实践

JavaScript window.open 适用于所有浏览器的正确大小