【问题标题】:not able to close the jquery iframe thickbox when the page is https页面为 https 时无法关闭 jquery iframe 厚框
【发布时间】:2010-04-13 10:09:03
【问题描述】:

我有 jQuery thickbox(TB_iframe=true),它在基于 iframe 的叠加层中显示 https 页面。

父页面是http,覆盖页面是https。如果我使用

self.parent.tb_remove() 

这不起作用并给了我

<https://www.abc.com><http://www.abc.com> 获取财产Window.tb_remove 的权限被拒绝。

任何解决方案。我希望能够关闭 thikbox,无论它是在 iframe 中显示的 https 还是 http 页面。

【问题讨论】:

  • 您在 iframe 中显示的页面是否与您打开厚盒 lightframe 的页面位于同一域中?
  • 是的,它是同一个域。但是由于 http 和 https 在不同的端口上运行,它将它作为不同的域。

标签: javascript jquery thickbox


【解决方案1】:

您需要一个 iFrame 来进行通信。但是,您会希望它被锁定以防止 XSS。

创建第二个页面,例如http://www.abc.com/thickboxClose。该页面包含关闭thickbox 的javascript。例如,window.parent.parent.tb_remove()。

然后要关闭您的 iframe,您需要创建一个指向该页面的隐藏 iFrame。由于它在同一个域上,它可以到达父级。

【讨论】:

    【解决方案2】:

    使用 ../page.html 之类的关系 URL 而不是 http://domain.com/page.htm 作为链接。检查打开thickbox lightframe的页面与lightframe中显示的页面是否在同一个域中。

    我写了一个javascript函数来创建和打开一个类似于thickbox的轻框架,也许它会有所帮助 jLightFrame

    【讨论】:

      【解决方案3】:

      正如丹尼尔所说,您应该使用相对网址。它失败的原因是因为您只能阅读与当前处于相同“信任”(ssl) 级别的 javascript 内容。

      您不希望您银行的 HTTPS 网站对非 https 网络服务进行 ajax 查询吗?

      【讨论】:

        【解决方案4】:

        试试这个

        来自 iframe

        <a href="http://www.abc.com" target="_parent">Close</a>
        

        尝试使用任何类型的 javsacript 都将是一种 hack

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-28
          • 2016-05-12
          • 1970-01-01
          相关资源
          最近更新 更多