如何使用GWT访问Iframe的内容?

时间:2011-09-02 20:24:08

标签: gwt iframe

我有一个我在GWT中创建的HiddenIframe,它从帖子中获得响应。 OnBrowsewerevent()我试图反省Iframe的内容以获取错误代码或成功。

当我通过GWT访问Iframe时,我可以访问它,但innerHTML方法始终为null

我写了一个JSNI方法

private native String getMessage()/*-{
    var e = document.getElementById('my_iframe');
    var html = e.contentWindow.document.body.innerHTML;
    return html 
    }-*/;

我总是把e作为null,因为GetelementbyID返回null,当我内省HTML使用firebug时,我可以看到带有ID的Iframe。解决问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您需要使用特定于GWT的$doc变量,而不是document。来自GWT JSNI documentation

  

当从JSNI访问浏览器的窗口和文档对象时,必须分别将它们引用为$ wnd和$ doc。您编译的脚本在嵌套框架中运行,$ wnd和$ doc会自动初始化,以正确引用主页的窗口和文档。