2013-07-04 114 views
0

我遇到了一個問題,我無法將該URL放入stringbuilder中。我想在這裏完成的只是獲取頁面的特定部分。這裏是我試圖讓內容關閉的網頁:把URL放在StringBuilder(WebView)中的位置

http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA

這裏是網站,我只想在我的WebView顯示的部分:

http://oi44.tinypic.com/2ilnhwi.jpg

這裏我的代碼:

public class WebClient extends WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
    @Override 
    public void onPageFinished(WebView view, String url) { 
     StringBuilder builder = new StringBuilder(""); 
     builder.append("javascript:document.getElementById('gb') .style.visibility= 'hidden';"); 
     builder.append("document.getElementById('gb') .style.display = 'none' ;"); 
     builder.append("document.getElementById('appbar').style.visibility= 'hidden';"); 
     builder.append("document.getElementById('appbar').style.display = 'none' ;"); 
     builder.append("document.getElementById('gf-nav').style.visibility= 'hidden';"); 
     builder.append("document.getElementById('gf-nav').style.display = 'none' ;"); 
     view.loadUrl(builder.toString()); 
    } 
    } 

private void AddListenerOnButton() { 
    spinner = (Spinner) getView().findViewById(R.id.spinner); 
    final WebView webView = (WebView) getView().findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setRenderPriority(RenderPriority.HIGH); 
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
    webView.getSettings().setDatabaseEnabled(true); 
    webView.getSettings().setDomStorageEnabled(true); 
    webView.getSettings().setAppCacheEnabled(true); 
    webView.getSettings().setBuiltInZoomControls(true); 

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
      String text1 = spinner.getSelectedItem().toString().trim(); 
      WebClient wc = new WebClient(); 
      if (text1.equals("US Dollar - USD")) { 
       //webView.loadUrl("http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA"); 
       wc.onPageFinished(webView, "http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA"); 
       wc.shouldOverrideUrlLoading(webView, "http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA"); 
      } 
} 

我已經嘗試了一切,但整個網頁仍在顯示。我究竟做錯了什麼?這是否是其他的錯誤?任何幫助將不勝感激。

+0

[無法從網站獲取特定內容]的可能重複(http://stackoverflow.com/questions/17554650/cannot-get-specific-content-off-of-website) – techiServices

回答

0

我當前的代碼被包裝在整個function()封裝,工作正常,也許你可以嘗試了這一點:

builder.append("javascript:(function() {"); 
builder.append("document.getElementById('gb') .style.visibility= 'hidden';"); 
builder.append("document.getElementById('gb') .style.display = 'none' ;"); 
builder.append("document.getElementById('appbar').style.visibility= 'hidden';"); 
builder.append("document.getElementById('appbar').style.display = 'none' ;"); 
builder.append("document.getElementById('gf-nav').style.visibility= 'hidden';"); 
builder.append("document.getElementById('gf-nav').style.display = 'none' ;"); 
builder.append("})()"); 

編輯:忘了幾個圓括號在的(function(){})

結束