我正在嘗試爲加載iFrame或彈出窗口的web應用程序創建一個登錄按鈕。與Facebook登錄按鈕類似。我目前正在使用postMessage()方法來處理。postMessage()iFrames和/或彈出窗口之間ie6/7的替代
但是我知道它不會在我需要支持的IE6/IE7中工作。他們可以使用的替代方案嗎?還是我希望能從IE6的「真棒瀏覽器」中得到很多?
我正在嘗試爲加載iFrame或彈出窗口的web應用程序創建一個登錄按鈕。與Facebook登錄按鈕類似。我目前正在使用postMessage()方法來處理。postMessage()iFrames和/或彈出窗口之間ie6/7的替代
但是我知道它不會在我需要支持的IE6/IE7中工作。他們可以使用的替代方案嗎?還是我希望能從IE6的「真棒瀏覽器」中得到很多?
早在當時,我曾經寫過基於IE6的網站,它們打開彈出窗口並在彈出窗口和原始窗口之間進行通信。
所以可以做到。
瀏覽器提供了一些可用於此目的的對象 - window.caller
是您最希望將呼叫從打開的窗口傳遞迴原來的對象的那個,此外還有window.open()
呼叫返回的對象,您可以使用它將來自原始窗口的呼叫傳遞迴新的窗口。
這兩者可以讓你在兩個方向上進行溝通。
您可能對jQuery也有一些喜悅,因爲我相信有幾個插件可以將這些方法包裝在更友好的界面中。
但是,請注意,您現在可以在這些較舊的瀏覽器中執行的操作比現在可能的操作更受限制,因此即使您可以對跨窗口通信執行操作,也可能會發現需要某些操作這在舊版瀏覽器中無法完成。
希望有所幫助。
感謝你幫助很多 – mcclennon19
我試着看看'window.caller'是否在chrome中可用,但事實並非如此。我還檢查了IE9,IE8,IE7,並沒有返回對象?你的意思是'window.opener'? –
@ jdavid.net - 很可能我的意思是。有一陣子了。 – Spudley
微軟甚至不支持IE6!讓它已經死了! – epascarello
@epascarello:這是一個民粹主義的聲明,但我同意;) – Tadeck
@Tadeck,我們很快就會對IE7和FF3說。 – epascarello