当前位置: 首页 > article >正文

Android Webview隐藏部分div

Android Webview隐藏部分div

1.实现方法:

在网页加载结束后,注入js隐藏或移除部分div

2.js中document节点获取页面元素:

1.querySelector()方法

描述:本方法用于根据给定的选择器选中页面元素

如果有多个元素满足条件,则返回第一个满足条件的元素节点

语法:document.querySelector(‘选择器名’);

注意:如果查找失败,返回null

2.querySelectorAll()方法

描述:本方法用于根据给定的选择器选中页面元素

如果有多个元素满足条件,则返回这些元素构成的集合

语法:document.querySelectorAll(‘选择器名’);

注意:

(1)返回的结果是一个节点列表,不是数组,但能够像使用数组一样使用列表
(2)如果查找失败,返回一个空的节点列表(.length==0)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>document节点获取页面元素</title>
	</head>
	<body>
		<div id="div">我是第一个div</div>
		<div class="div">我是第二个div</div>
		<div>我是第三个div</div>
		<p>我是p标签</p>
		<h2>我是h2标签</h2>
		<button name="aaa">我是button</button>
	</body>
	<script type="text/javascript">
		var div = document.querySelector('#div');
		console.log(div); //<div class="div">我是第二个div</div>
		
		var div = document.querySelector('div');
		console.log(div); //<div id="div">我是第一个div</div>
		
		var divList = document.querySelectorAll('div');
		console.log(divList); //NodeList(3) [div#div, div.div, div]
		console.log(divList[1]); //<div class="div">我是第二个div</div>
		console.log(divList.length); //3	
	</script>
</html>

3.getElementById()方法

描述:根据指定的id名选中页面元素

​ 如果存在多个指定 满足条件元素,则返回第一个元素节点

语法:document.getElementById(‘id名’);

注意:如果查找失败,返回null

4.getElementsByClassName()方法

描述:根据指定的类名选中页面中所有满足条件的元素

语法:document.getElementsByClassName(‘类名’);

注意:返回结果是一个有顺序的节点列表,可以通过索引来访问列表中的元素(索引从0开始)

5.getElementsByTagName()方法

描述:根据指定的标签名选中页面中所有满足条件的元素

语法:document.getElementsByTagName(‘标签名’);

注意:如果参数值为’*',则返回文档中的所有元素

6.getElementsByName()方法

描述:根据指定的name值选中页面中所有满足条件的元素

语法:document.getElementsByName(‘name属性’);

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>document节点获取页面元素</title>
	</head>
	<body>
		<div id="div">我是第一个div</div>
		<div class="div">我是第二个div</div>
		<div>我是第三个div</div>
		<p>我是p标签</p>
		<h2>我是h2标签</h2>
		<button name="aaa">我是button</button>
	</body>
	<script type="text/javascript">
		var a = document.getElementById('div');
		console.log(a); //<div id="div">我是第一个div</div>
		
		var b = document.getElementsByClassName('div');
		console.log(b); //HTMLCollection [div.div]
		
		var c = document.getElementsByTagName('p');
		console.log(c); //HTMLCollection [p]
		
		var d = document.getElementsByName('aaa');
		console.log(d); //NodeList [button]		
	</script>
</html>

3.代码:

@Override
public void onPageFinished(WebView view, String url) {
	...
	view.loadUrl("javascript:(function() { " +
                                    //打开浏览器的弹框
                                    "var b= document.getElementsByClassName('awap-shadowbox')[0].style.display='none'; " +
                                    "var b= document.getElementsByClassName('awap-shadowbox')[0].remove(); " +
                                    
                                    "document.getElementsByClassName('read_more_btn')[0].click(); " +
                                    "document.getElementsByClassName('btn_xxx_div')[0].style.display='none'; " +
                                    "var x = document.getElementsByClassName('hide-xx'); " +
                                    " document.getElementById('footer').remove();"+
                                    "var i;\n" +
                                    "for (i = 0; i < x.length; i++) {\n" +
                                    "    x[i].click();\n" +
                                    "} " +
                                    "})()");
}

4.具体做法

有时候设置 部分标签 的属性,不生效,可能找的不对或者是标签不能操作,耐心找找。

最好通过浏览器打开你需要操作的网页,使用手机模式查看网页源码,使用箭头找标签的具体id或class

5.参考链接

js中document节点获取页面元素的六种方式

如何去掉或者修改网页中的遮罩层,DIV等元素?

Android WebView有封装工具类

Android Webview 去除标题(指定标签里的内容)

kt


http://www.kler.cn/a/5669.html

相关文章:

  • 【从零开始学习 UVM】7.3、Driver Sequencer Handshake —— get() 和 put() 方法详解【了解即可】
  • 【二阶锥规划】考虑气电联合需求响应的气电综合能源配网系统协调优化运行【IEEE33节点】(Matlab代码实现)
  • 全面了解ITSS认证基础知识
  • 短视频矩阵发布系统 如何定时自动发布?
  • 第14章_视图
  • C的实用笔记29——函数指针(通过指针引用函数)
  • PMP考试都是什么题?
  • C语言实现拼图求解
  • 【lwIP(第十三章)】WebServer协议
  • v-md-editor使用
  • 【C++】STL—— list 模拟实现
  • 【JAVA】Java进阶(一)
  • Leetcode.764 最大加号标志
  • 服务网格领域的百花齐放,是否存在一个更优解?
  • 【K8S系列】深入解析有状态服务
  • .NET开发 DataTable与List<T>相互转换
  • 3.23——3.26后半周总结
  • 【无标题】simon范文opinion(工作类)
  • C语言中的预处理
  • 信息系统基础练习题