2010-04-13 63 views
1

我有jQuery thickbox(TB_iframe=true),它显示基于iframe的叠加层中的https页面。当页面为https时,无法关闭jquery iframe thickbox https

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

self.parent.tb_remove() 

这不工作,并给了我

权限遭拒,<https://www.abc.com><http://www.abc.com>获取属性Window.tb_remove

任何解决方案。我希望能够关闭thikbox,而不管它是https或http页面,它显示在iframe中。

+0

是您在同一个域中显示在iframe页面作为您打开thickbox lightframe的页面? – 2010-04-15 14:51:58

+0

是的,它是相同的域名。但是http和https在不同的端口上运行时,它将其视为不同的域名。 – Sourabh 2010-04-17 08:03:22

回答

0

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

我写了一个javascript函数来创建和打开类似于ThickBox的轻型框架,也许这将有助于 jLightFrame

0

正如丹尼尔说,你应该使用相对URL。它失败的原因是因为你必须只读取当前处于相同“信任”(ssl)级别的javascript内容。

你不希望你的银行的HTTPS网站对非HTTPS网络服务做ajax查询吗?

1

你需要的是一个iFrame进行通信。但是,您会希望非常难以锁定XSS。

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

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

-2

试试这个

从IFRAME

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

与任何种类javsacript的尝试,这只是将是一个黑客