AndroidはWebview
divの一部を隠します
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にはパッケージツールクラスがあります