1

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

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

self.parent.tb_remove() 

这不起作用并给了我

<https://www.abc.com>获得财产的许可被拒绝。Window.tb_remove<http://www.abc.com>

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

4

4 回答 4

1

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

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

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

于 2011-09-12T13:46:57.987 回答
0

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

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

于 2010-04-15T14:55:53.403 回答
0

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

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

于 2010-04-15T14:59:18.353 回答
-2

尝试这个

从 iframe

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

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

于 2012-07-27T01:37:25.860 回答