Android Webview は div の一部を非表示にします

AndroidはWebviewdivの一部を隠します

1.実装方法:

Webページのロード後にjs一部のdivを非表示または削除するために挿入します。

2.jsドキュメント ノード内のページ要素を取得します。

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 name');

注: 検索が失敗した場合は、null を返します。

4.getElementsByClassName()方法

説明: 指定されたクラス名に従って、条件を満たすページ内のすべての要素を選択します

構文: document.getElementsByClassName('クラス名');

注: 返される結果はノードの順序付きリストであり、リスト内の要素にはインデックスによってアクセスできます (インデックスは 0 から始まります)。

5. getElementsByTagName() メソッド

説明: 指定されたタグ名に従って、条件を満たすページ内のすべての要素を選択します

構文: document.getElementsByTagName('タグ名');

注: パラメータ値が「*」の場合、ドキュメント内のすべての要素が返されます。

6. getElementsByName() メソッド

説明: 指定された名前の値に従って、条件を満たすページ内のすべての要素を選択します

構文: 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. 具体的な実践方法

タグによっては属性の設定が反映されず、検索が間違っていたり、タグが操作できない場合がありますので、気長に探してください。

ブラウザを通じて操作する必要がある Web ページを開き、携帯電話モードを使用して Web ページのソース コードを表示し、矢印を使用してラベルの特定の ID またはクラスを見つけるのが最善です。

5.参考リンク

js のドキュメント ノードがページ要素を取得する 6 つの方法

Web ページ内のマスク レイヤー、DIV、その他の要素を削除または変更するにはどうすればよいですか?

Android WebViewにはパッケージツールクラスがあります

Android Webview はタイトル (指定されたタグ内のコンテンツ) を削除します

kt

おすすめ

転載: blog.csdn.net/fromVillageCoolBoy/article/details/129922917