我有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页面。
答案 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都只是一个黑客攻击