html怎么获取动态数据?

html-css08

html怎么获取动态数据?,第1张

可以使用动态HTML从一个HTML页面元素中获取数据。它允许获取和操作数据而不需经过服务器。使用页面上对象的属性,在 Visual Basic \x0d\x0a代码中可以在页面上搜集数据、执行计算并显示响应,而不需将处理从客户端传送到服务器,传送将增加对用户操作和请求的响应时间。\x0d\x0a\x0d\x0a例如,假设正在使用一个应用程序,它允许用户通过输入作者名字、书名或检索书号到一个搜索页的文本字段中,从一个数据库中查询书目。文本字段被命名为Author、Title和CallNo。当从应用程序的搜索页提交一个查询时,应用程序必须从这些文本字段获取该值。\x0d\x0a\x0d\x0a下面的代码显示了如何使用变量来获取这些字段的值:\x0d\x0aPrivate function cmdSearch_onclick() As Boolean\x0d\x0a创建变量包含搜索条件。\x0d\x0aDim sAuthor as String\x0d\x0aDim sTitle as String\x0d\x0aDim sCallNo as String\x0d\x0a从页面获取搜索条件。\x0d\x0asAuthor=Me.author.Value\x0d\x0asTitle=Me.title.Value\x0d\x0asCallNo=Me.callno.Value\x0d\x0a这里的代码处理并返回查询。\x0d\x0aEnd Function\x0d\x0a这段代码使用HTML文本字段的Value属性获取字段的数据,代码将打开一个数据库连接、创建一个记录集并返回适当的记录,然后数据被发送给用户。

只能通过JavaScript来获取, 然后通过JS获取, 然后通过JavaScriptInterface来传递给Java层。\x0d\x0a\x0d\x0a做webview,遇到2种需求,一种是在自己服务器上的HTML中获取数据,另一种是通过自己服务器上的HTML中的超链接跳到另一个站点的HTML中,并获取数据。\x0d\x0a于是,总结了2种通过webview获取网页上的数据的方式:\x0d\x0a第一种:简单点的,直接通过js调java,在调用方法的过程中将数据通过方法的参数传递给Android端,(前提:服务端有对应的faxun对象,而且调用的方法是showImages(String[] imgUrls))。\x0d\x0a\x0d\x0aclass MyJavaScriptInterface {\x0d\x0a\x0d\x0aMyJavaScriptInterface() {\x0d\x0a}\x0d\x0a\x0d\x0a/**\x0d\x0a * js调java,显示图片\x0d\x0a *\x0d\x0a * @param imgUrls\x0d\x0a */\x0d\x0a@JavascriptInterface\x0d\x0apublic void showImages(String[] imgUrls) {\x0d\x0aLogUtils.i(TAG, "imgUrls = " + imgUrls[0])\x0d\x0aNewsDetailWebviewActivity.this.imgUrls = imgUrls\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a...\x0d\x0awebView.addJavascriptInterface(new MyJavaScriptInterface(), "faxun")\x0d\x0a\x0d\x0a第二种:有点复杂,通过webview注册一个本地接口后,然后通过java调js,拿到document对象后,解析HTML标签,然后数据会通过本地接口中的回调方法传递给Android端,(前提:HTML页面中的meta标签中有对应的reply_info名称和content属性,数据是封装在content里面的json格式的字符串)。\x0d\x0a\x0d\x0aclass MyWebClient extends WebViewClient {\x0d\x0a@Override\x0d\x0apublic void onPageFinished(WebView view, String url) {\x0d\x0aview.loadUrl("javascript:window.getShareData.OnGetShareData("\x0d\x0a+ "document.querySelector('meta[name=\"reply_info\"]').getAttribute('content')" + ")")\x0d\x0asuper.onPageFinished(view, url)\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0aprivate class GetShareDataInterface {\x0d\x0a@JavascriptInterface\x0d\x0apublic void OnGetShareData(String shareData) {\x0d\x0aif (null != shareData) {\x0d\x0atry {\x0d\x0aJSONObject shareJson = new JSONObject(shareData)\x0d\x0atitle = shareJson.optString("title")\x0d\x0adescription = shareJson.optString("description")\x0d\x0aimageUrl = shareJson.optString("imageUrl")\x0d\x0a} catch (JSONException e) {\x0d\x0ae.printStackTrace()\x0d\x0a}\x0d\x0a\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0a.....\x0d\x0awebView.setWebViewClient(new MyWebClient())\x0d\x0a\x0d\x0a其实,如果是普通的需求,两种方式都可以解决问题,但是如果是有些HTML没有做js调java,只是个普通的HTML,并且需要获取页面上的数据时,只能通过第二种方式来获取HTML上的数据了,比如获取HTML上的title等等。

一般用原生js、jQuery获取html元素的值。<div id="test">数值</div>

原生js写法:

alert(document.getElementById('test').innerHTML)//数值

jQuery写法:

alert($('#test').html())//数值

拓展资料

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。