当页面为https时,无法关闭jquery iframe thickbox

时间:2010-04-13 10:09:03

标签: javascript jquery thickbox

我有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 个答案:

答案 0 :(得分:1)

您需要的是一个iFrame进行通信。但是,您需要非常难以锁定它以防止XSS。

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

然后关闭你的iframe,你创建一个指向该页面的隐藏iFrame。由于它位于同一个域中,因此可以访问父域。

答案 1 :(得分:0)

使用像./page.html而不是http://domain.com/page.htm这样的关系网址作为链接。检查打开厚箱灯框的页面是否与灯框中显示的页面位于同一个域中。

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:-2)

试试这个

来自iframe

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

尝试使用任何类型的javsacript都只是一个黑客攻击