我有一个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>');");
}