Sander bakker
Sander bakker

Reputation: 505

Removing specific class/tag from WebView Android

I'm trying to remove this part of a webpage in side my WebView

<header class="page-header" data-type="fixed" role="banner"

This is what I tried so far

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceStatus){
    View view = inflater.inflate(R.layout.fwebview, container, false);
    webView = (WebView) view.findViewById(R.id.webView);
    String url = getArguments().getString("link");
    final String js = "javascript:"
            + "function () {"
            + "   var element = document.getElementsByClassName('page-header');"
            + "   element[0].parentNode.remove(element[0]);"
            + "} ();";
    // Enable Javascript
    webView.getSettings().setJavaScriptEnabled(true);

    //set the WebViewClient before calling loadUrl
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url)
        {
                webView.loadUrl(js);
        }

    });
webView.loadUrl(url);
    return view;
}

Somehow this doesn't work. I tried various methods to achieve what I want but somehow it won't remove the header. Can anyone help me fix this problem? It's really anoying

Upvotes: 0

Views: 610

Answers (1)

snachmsm
snachmsm

Reputation: 19223

you need also WebChromeClient set for your WebView

webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient()); //after setJavaScriptEnabled

also enabling DOM storage may be helpful

webView.getSettings().setDomStorageEnabled(true);

Upvotes: 1

Related Questions