2017-06-26 13 views
0
@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"); 

     // 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("javascript:var con = document.getElementByClassName('page-header'); " + 
         "con.parentNode.removeChild(con); "); 
      } 
     }); 
     webView.loadUrl(url); 
     return view; 
    } 

私はこのコードを書いています。他のフラグメントからURLを取得します。この質問には関係ありません。私はウェブページwww.ad.nlからヘッダーを削除するために様々なJavaScriptコードを試しましたが、うまくいかないようです。そのページ上のヘッダーのクラスは、ページヘッダーです。その外に\"page-header\"のような機能をエスケープすることは機能しません。ウェブページからウェブサイトの一部を削除します。

誰でもこの問題を解決する手助けはできますか?

答えて

1

この上の私のテイクが

String js = "javascript:" 
      + "function() {" 
      + " var element = document.getElementsByClassName('page-header');" 
      + " element[0].parentNode.remove(element[0]);" 
      + "}();"; 

ようなものになるだろうし、可能ならば、私はおそらくそうのような不要なページのロードを避けるためにevaluateJavascriptを使用します。これが唯一の世話をすること

webView.setWebViewClient(new WebViewClient() { 

    @Override 
    public void onPageFinished(WebView view, String url) 
    { 
     if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { 
      webView.evaluateJavascript(js, null); 
     } else { 
      webView.loadUrl(js); 
     } 
    } 

}); 

注意を最初にpage-headerが見つかると、それが壊れてしまいますが、そのアイデアははっきりしているはずです。

+0

これは残念ながらうまくいきません –

関連する問題