当你使用gwt使用twitter打开一个弹出窗口到oauth时,如何访问父窗口?

时间:2010-07-18 23:08:06

标签: java javascript gwt twitter oauth

我在GWT应用程序中使用twitter工作得很好。但是,当我使用Window.open()尝试执行oauth流程时,获得一个成功的oauth,并且twitter将新打开的窗口重定向到我的回调URL,我有一个问题。

我可以看到关闭窗口的唯一方法是使用JSNI并调用$ wnd.close()。关闭我用于oauth的窗口后,我想在父窗口上调用方法继续。但是,由于我无法弄清楚如何访问父窗口,我不知道该怎么做。

最初我尝试了一个GWT对话框,由于模态对话框和玻璃背景特征很棒,但遗憾的是不起作用,因为当重定向到Twitter时,如果你在iframe中,它们会杀死iframe。

我正在考虑将窗口的opener对象保存在java JavaScriptObject中,然后在关闭我用于oauth的窗口后使用它来调用我的GWT代码。

有人这样做过吗?我正在尝试做的基本上是tweetmeme通过非GWT javascript在它的twitter oauth中做的。

感谢。

1 个答案:

答案 0 :(得分:3)

Javascript中的

Window.open返回子窗口的句柄。由于GWT的Window.open没有返回此句柄,为什么不使用自己的JSNI进行javascript调用并返回窗口句柄?然后,您可以在GWT应用程序中保留此窗口句柄,然后使用ti关闭窗口,稍后将此句柄传递给另一个只执行window.close()

的JSNI