Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
50
rated 0 times [  51] [ 1]  / answers: 1 / hits: 15939  / 7 Years ago, sat, december 16, 2017, 12:00:00

I want to remove the header of the website in android 'WebView'. With the Code that I have, it works. But the problem is that the 'WebView' is removing the header after the page loaded completely. I want to remove it, while it is loading.



Thats the code snippet:



webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webView.loadUrl(javascript:(function() { +
var head = document.getElementsByTagName('header')[0];
+ head.parentNode.removeChild(head); +
})());

webView.loadUrl(javascript:(function() { +
var head = document.getElementsByTagName('footer')[0];
+ head.parentNode.removeChild(head); +
})());
}
});

More From » android

 Answers
21

Easiest way is to inject Javascript in onLoadResource() method. Put it inside try-catch block since WebView will not know about the element before it has been loaded:



webView.setWebChromeClient(new WebChromeClient() {
...

@Override
public void onLoadResource(WebView view, String url) {

try {
webView.loadUrl(javascript:(window.onload = function() { +
(elem1 = document.getElementById('id1')); elem.parentNode.removeChild(elem1); +
(elem2 = document.getElementById('id2')); elem2.parentNode.removeChild(elem2); +
})());
} catch (Exception e) {
e.printStackTrace();
}

}
}

[#55666] Wednesday, December 13, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
hadens

Total Points: 142
Total Questions: 98
Total Answers: 100

Location: Kenya
Member since Mon, Jun 14, 2021
3 Years ago
;