5

I want to remove the "header" element from a webpage with the help of this answer Display a part of the webpage on the webview android

But I am getting an error message; see this https://dl.dropboxusercontent.com/u/15065300/Check-2.jpg

Here is my full code:

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewActivity extends Activity {

    private WebView webView;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);

        webView = (WebView) findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient() {
         @Override
        public void onPageFinished(WebView view, String url)
        {
            webView.loadUrl("javascript:(function() { " +
                    "document.getElementsByTagName('myDiv1')[0].style.display="none"; " +
                    "})()");
        }
        });
        webView.loadUrl("http://skyasim.info/abc.html");

    }

}

Manifest permission as well

 <uses-permission android:name="android.permission.INTERNET" />
Community
  • 1
  • 1
Asim Roy
  • 9,915
  • 4
  • 28
  • 40

3 Answers3

9

You need to escape your ". See the Escape Sequences section.

webView.loadUrl("javascript:(function() { " +
    "document.getElementsByTagName('header')[0].style.display=\"none\"; " +
    "})()");
James McCracken
  • 15,488
  • 5
  • 54
  • 62
3

This worked for me:

webView.loadUrl("javascript:var con = document.getElementById('a'); " +
                "con.parentNode.removeChild(con); ");

htmlCode:

    <ul>
............
     <div id="a">               
                <H4 align="center"> something</H4>  
     </div>                 
    </ul>
Jeff Loughlin
  • 4,134
  • 2
  • 30
  • 47
smajdalf
  • 31
  • 1
1
<div class="row"></div>
webview.loadUrl("javascript:if (typeof(document.getElementsByClassName('row')[0]) != 'undefined' && document.getElementsByClassName('row')[0] != null){document.getElementsByClassName('row')[0].style.display = 'none';} void 0");
  • you can add in public void onPageFinished(WebView view, String url) { if (progressBar.isShowing()) { progressBar.dismiss(); } view.loadUrl("javascript:var footer = document.getElementById('footer'); footer.parentNode.removeChild(footer); var header = document.getElementById('header-full'); header.parentNode.removeChild(header);"); } – vinod kumar reddy Apr 02 '19 at 12:13
  • You can [edit] your answer, don't post code in comments. – barbsan Apr 02 '19 at 12:17
  • Ok you can add in onPageFinished Method like view.loadUrl("javascript:var footer = document.getElementById('footer'); – vinod kumar reddy Apr 02 '19 at 12:23