WebView怎么获取Html元素的值

WebView怎么获取Html元素的值,第1张

只能通过JavaScript来获取, 然后通过JS获取, 然后通过JavaScriptInterface来传递给Java层。

做webview,遇到2种需求,一种是在自己服务器上的HTML中获取数据,另一种是通过自己服务器上的HTML中的超链接跳到另一个站点的HTML中,并获取数据。

于是,总结了2种通过webview获取网页上的数据的方式:

第一种:简单点的,直接通过js调java,在调用方法的过程中将数据通过方法的参数传递给Android端,(前提:服务端有对应的faxun对象,而且调用的方法是showImages(String[] imgUrls))。

class MyJavaScriptInterface {

MyJavaScriptInterface() {

}

/

js调java,显示

@param imgUrls

/

@JavascriptInterface

public void showImages(String[] imgUrls) {

LogUtilsi(TAG, "imgUrls = " + imgUrls[0]);

NewsDetailWebviewActivitythisimgUrls = imgUrls;

}

}

webViewaddJavascriptInterface(new MyJavaScriptInterface(), "faxun");

第二种:有点复杂,通过webview注册一个本地接口后,然后通过java调js,拿到document对象后,解析HTML标签,然后数据会通过本地接口中的回调方法传递给Android端,(前提:HTML页面中的meta标签中有对应的reply_info名称和content属性,数据是封装在content里面的json格式的字符串)。

class MyWebClient extends WebViewClient {

@Override

public void onPageFinished(WebView view, String url) {

viewloadUrl("javascript:windowgetShareDataOnGetShareData("

+ "documentquerySelector('meta[name=\"reply_info\"]')getAttribute('content')" + ");");

superonPageFinished(view, url);

}

}

private class GetShareDataInterface {

@JavascriptInterface

public void OnGetShareData(String shareData) {

if (null != shareData) {

try {

JSONObject shareJson = new JSONObject(shareData);

title = shareJsonoptString("title");

description = shareJsonoptString("description");

imageUrl = shareJsonoptString("imageUrl");

} catch (JSONException e) {

eprintStackTrace();

}

}

}

}

webViewsetWebViewClient(new MyWebClient());

其实,如果是普通的需求,两种方式都可以解决问题,但是如果是有些HTML没有做js调java,只是个普通的HTML,并且需要获取页面上的数据时,只能通过第二种方式来获取HTML上的数据了,比如获取HTML上的title等等。

jqLite in angularjs

angularelement("#element-id")

这是一个DOM *** 作。Angular不会帮助你获得DOM的某个属性。

你需要使用的是DOM选择器,不管是原生的也好或者像jQuery这样的库也好。

获取ID的目标地是为了 *** 作DOM, Angular的设计思想不是这样的, 你应该用directive代替

directive的link函数已经把作用域,元素,属性数组注入到link函数调用的参数当中了

link(scope,element,attrs)

关于directive的详细解释,请参考: 创建自定义"指令"

转载,仅供参考。

在HTML页面中,获取当前select元素中所选中的那个值和显示值。

<tr>

<th scope="row" width="15%" nowrap >目标字段</th>

<td><select name="idMbzd" style="width:25%" onchang=”on_idmbzd_change();”>

<option value=”1”>eg1</option>

<option value=”2”>eg2</option>

<option value=”3”>eg2</option>

</select>

</td>

</tr>

<script>

function on_idmbzd_change(){

var sel_obj = documentgetElementByIdx("idMbzd ");

var index = sel_objselectedIndex;

alert(sel_objoptions[index]value);

alert(sel_objoptions[index]text);

}

</script>

设置select元素的选中项:

通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果。

< select id = "sel" >

< option value = "1" >1</ option >

< option value = "2" selected = "selected" >2</ option >

< option value = "3" >3</ option >

</ select >

扩展资料

超文本标记语言(外国语简称:HTML)标记标签通常被称为HTML标签,HTML标签是HTML语言中最基本的单位,HTML标签是HTML(标准通用标记语言下的一个应用)最重要的组成部分。

HTML标签的大小写无关的,例如“主体”<body>跟<BODY>表示的意思是一样的,推荐使用小写。

参考资料来源:百度百科-HTML

下面例子通过documentgetElementsByClassName("class1")获取所有同一class的元素,使用for循环把取得的div元素的值存入数组arr中,完成的代码如下:

运行结果,打印数组如下:

扩展资料:

js或jQuery获取html元素的值的常用方法:

例如:<div id="aa">值</div>

js写法:

alert(documentgetElementById('aa')innerHTML);

jQuery写法:

alert($('#aa')html());

说明如下:

innerHTML是取元素的内部html代码,此例中即div内部的所有html代码。

html()方法作用也是取dom节点的内部html内容,是jQuery中的函数方法。

以上就是关于WebView怎么获取Html元素的值全部的内容,包括:WebView怎么获取Html元素的值、如何获取html元素id,通过angularjs、如何获取和设置HTML文档中select元素的选中项等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9726881.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存