2010-04-13 74 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的嘗試,這只是將是一個黑客