WebView,从IFrame源获取文本

时间:2016-11-17 13:50:57

标签: android iframe webview

我有一个WebView,我在其中加载HTML内容。

该内容的一部分是IFrame(name = testframe)。 我试图从该IFrame源获取文字(“目前无效”),遗憾的是,下面的代码对我不起作用。

这是我的代码的输出:

I/System.out: IFRAME text: <html><head>

HTML源代码中的IFrame位置:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
</head>
<body style="background-color:#DFDFDF">
<iframe src="" name="testframe" width="800" height="500" align="left"
        scrolling="no" marginheight="0" marginwidth="0" frameborder="0">

</iframe>
</body>
</html>

IFrame的内容:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 ...
</head>
 ...
<body>
<div align="center">    
<p>Connected to: <b>test.com</b> at port <b>80</b>...</p>
<meta http-equiv="refresh" content="0; URL=http://alink.com/Info.pdf"> 
<div align="center">
<span class='htmlerror'>
<b>currently not available</b> //GET THIS TEXT
</span>
<br /><br />
<a href="javascript:window.close();"></a>
</div>
</body>
</html>

我的代码片段:

}
...
class MyJavaScriptInterface
    {
        @JavascriptInterface
        public void processHTML(String html)
        {
            System.out.println("IFRAME text: " + html);

        }
    }
...

w.getSettings().setJavaScriptEnabled(true);
w.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
w.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
 if (pd.isShowing()) {
    pd.dismiss();
    }
    view.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}

0 个答案:

没有答案
相关问题