2010-07-18 34 views
2

我得到了oauth在我的GWT應用程序中與twitter一起工作良好。但是,當我使用Window.open()嘗試執行oauth流時,獲得一個成功的oauth,並且twitter將新打開的窗口重定向到我的回調url,我遇到了一個問題。當你用twitter使用twitter打開一個彈出窗口到oauth時,你如何訪問父窗口?

我可以看到關閉窗口的唯一方法是使用JSNI並調用$ wnd.close()。關閉我用於oauth的窗口後,我想在父窗口上調用方法繼續。但是,因爲我無法弄清楚如何訪問父窗口,所以我不知道該怎麼做。

最初我嘗試了一個由於模態對話框和玻璃背景特性而令人敬畏的GWT對話框,但不幸的是,因爲當重定向到Twitter時,如果你在iframe中,它們會殺死iframe。

我在想着保留窗口的開啓器對象存儲在一個java JavaScriptObject中,然後在關閉我用於oauth的窗口後調用我的GWT代碼。

有沒有人這樣做?我想要做的事情基本上是tweetmeme通過非GWT javascript在twitter oauth中完成的。

謝謝。

回答

3

Window.open在Javascript中返回一個句柄給子窗口。由於GWT的Window.open不返回你這個句柄,你爲什麼不使用你自己的JSNI做一個JavaScript調用並返回窗口句柄?然後,您可以將這個窗口句柄保存在您的GWT應用程序中,然後使用ti關閉窗口,稍後將此句柄傳遞給另一個JSNI,然後執行window.close()

相關問題