要求する
多くの場合、WebViewによってロードされた一部のWebページに広告があり、広告を削除する必要があります。jsを使用して、対応する広告ブロックを非表示にすることができます。ここでの効果は、リストのコンテンツのみが表示されることです。
効果
- オリジナル効果
- シールド後の効果
コード
- コアJSコード
document.querySelector('#siteWrapper > header').style.display="none";
以下のWebViewsetWebViewClientメソッドで記述されたWebView設定の非表示コードonProgressChanged内部
WebViewClient client=new WebViewClient(){
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
@Override
public void onPageFinished(WebView view, String url) {
String fun="javascript:" +
"function hideStyle(){" +
"document.querySelector('#siteWrapper > header').style.display=\"none\";" +
"document.querySelector('#siteWrapper > div.wrapper > section.boxItem.boxItemAdd').style.display=\"none\";" +
"document.querySelector('#siteWrapper > div.wrapper > section.boxItem.toggleBox.pairsWrapper > div').style.display=\"none\";" +
"document.querySelector('#siteWrapper > footer > div.footerBottom').style.display=\"none\";" +
"document.querySelector('#siteWrapper > footer > div:nth-child(4)').style.display=\"none\";" +
"document.querySelector('#siteWrapper > footer > div:nth-child(3)').style.display=\"none\";" +
"document.querySelector('#siteWrapper > footer > div:nth-child(2)').style.display=\"none\";" +
"document.querySelector('#siteWrapper > footer > div:nth-child(1)').style.display=\"none\";" +
"document.querySelector('#siteWrapper > section.boxItem.disclaimer.js-toggled-box.js-disclaimer-box').style.display=\"none\";" +
"document.querySelector('#div-gpt-ad-1333374405327-0').style.display=\"none\";" +
"document.querySelector('#div-gpt-ad-1338276709958-0').style.display=\"none\";" +
"document.querySelector('#siteWrapper > div.adDrawer').style.display=\"none\";" +
"}" +
"hideStyle();";
view.loadUrl(fun);
}
};
ステップ
ブラウザでWebページのリンクアドレスを開き、F12キーを押してWebページのソースコードを表示し、div
でコピーセレクタを選択します。