js怎样 获得当前选中位置元素的 html格式

js怎样 获得当前选中位置元素的 html格式,第1张

有原生DOM获取以及用js库比如jquery

原生DOM的话首先获取标签对象,id或者name或其他

例:

1

<p id="targetp" >2333333</p>

<script>

var element = documentgetElementById("targetp");

var tagname = elementtagName;

alert(tagname);

</script>

jQuery获取

$("#content-header")get(0)tagName

如果已经获取到对象可以直接获取标记名

<p onclick="alert('您单击的是:'+thistagName);">中华人民共和国</p>

function getOuterHtml(obj) {

var box = $('<div></div>');

for (var i = 0; i < objlength; i ++) {

boxappend($(obj[i])clone());

}

return boxhtml();

}

只能通过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等等。

参考下面代码:

实现代码:

<form action="inputdo" name="formkk">

<table>

<tbody>

<tr>

<td>text:</td>

<td>

<input type="text" name="text">

</td>

</tr>

<tr>

<td>password:</td>

<td>

<input type="password" name="pass">

</td>

</tr>

<tr>

<td>radio:</td>

<td>

<input type="radio" name="xingbie" value="1">

<input type="radio" name="xingbie" value="2">

</td>

</tr>

<tr>

<td>checkbox:</td>

<td>

足球:<input type="checkbox" name="hobby" value="1" />

篮球:<input type="checkbox" name="hobby" value="2" />

拍球:<input type="checkbox" name="hobby" value="3" />

斗球:<input type="checkbox" name="hobby" value="4" />

</td>

</tr>

<tr>

<td>hidden:</td>

<td>

<input type="hidden" value="123" name="hidden"/>

</td>

</tr>

<tr>

<td>option:</td>

<td>

<select name="opt" id="opt">

<option>1</option>

<option>2</option>

<option>3</option>

<option>4</option>

</select>

</td>

</tbody>

</table>

<input type="button" value="提交" onclick="javascript:check()"/>

</form>String[] hobbys = requestgetParameterValues("hobby"); //checkbox

String text = requestgetParameter("text"); //text

String password = requestgetParameter("password"); //password

String xingbie = requestgetParameter("xingbie"); //radio

requestgetParameter("hidden");

requestgetParameter("opt"); //select

通过angularjs获取html元素的id的方法:

angularelement("#element-id");

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

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

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

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

link(scope,element,attrs)

关于directive的详细解释,请参考: 创建自定义"指令"jQuery写法: $('#id')

相关代码:

var editable = documentgetElementById('editable');

addEvent(editable, 'blur', function () {

// lame that we're hooking the blur event

localStoragesetItem('contenteditable', thisinnerHTML);

documentdesignMode = 'off';

});

addEvent(editable, 'focus', function () {

documentdesignMode = 'on';

});

if (localStoragegetItem('contenteditable')) {

editableinnerHTML = localStoragegetItem('contenteditable');

}

以上就是关于js怎样 获得当前选中位置元素的 html格式全部的内容,包括:js怎样 获得当前选中位置元素的 html格式、jquery怎么获取get来的HTML元素、WebView怎么获取Html元素的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9825684.html

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

发表评论

登录后才能评论

评论列表(0条)

保存