2013-04-28 46 views
0
protected void onCreate(Bundle savedInstanceState) { 
    String javaScript = "javascript:(function(){var%20content=document.getElementsByClassName('entry-content')[0].innerHTML;var%20content2=content.replace(/<p>/,'');var%20endpos=content2.search(/<div%20id/);})()"; 



    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_neugkeiten_rss_item); 

    Bundle bundle = getIntent().getExtras(); 
    String item_link = bundle.getString("link"); 
    String item_title = bundle.getString("title"); 

    TextView textViewTitle = (TextView) findViewById(R.id.textViewRssItemTitle); 
    textViewTitle.setText(item_title); 

    WebView webViewContent = (WebView) findViewById(R.id.webViewNewsContent); 
    webViewContent.getSettings().setJavaScriptEnabled(true); 
    webViewContent.loadUrl("file:///android_asset/Resources/rsscontent.html"); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.home, menu); 
    return true; 
} 

public void onbuttonclick (View view) { 
    WebView webViewContent = (WebView) findViewById(R.id.webViewNewsContent); 
    webViewContent.getSettings().setJavaScriptEnabled(true); 
    webViewContent.loadUrl("javascript:(function() {var%20content=document.getElementsByClassName('entry-content')[0].innerHTML;var%20content2=content.replace(/<p>/,'');var%20endpos=content2.search(/<div%20id/);var%20content3=content2.slice(0,endpos);var%20content4=content3.replace(/%20%20%20%20/,'');document.body.innerHTML=content4;document.body.style.backgroundColor='#e9e9e9';})()"); 
} 

嗨,大家好,Android的發展:WebView中的JavaScript不工作

我有一個問題: 我想一個網頁加載到我的網絡視圖,然後運行JavaScript到它,消除所有不相關的內容並重新定義背景顏色。我的JavaScript確實可以在PC上運行,但不能在android瀏覽器或webview中運行。你知道代碼中有什麼錯誤嗎?

API級別的11 目標17

如果你們有人知道如何下載HTML文件

+0

這不是'loadUrl',但'loadDataWithBaseURL' - 按照這個答案 - http://stackoverflow.com/questions/8533187/add-javascript-into-webview/8557602#8557602 – 2013-04-28 20:17:40

+0

如果我使用這個我只得到一個白色屏幕 – MoBr114 2013-04-28 20:42:22

回答

0

你想這一個很好的教程這將是也很大:

1加此行到您的onCreate功能

webViewContent.setWebViewClient(new myWebClient()); 

,然後加入2-加這個類到類

public class myWebClient extends WebViewClient 
    { 
     @Override 
     public void onPageFinished (WebView view, String url) { 
      view.loadUrl("javascript:(function(){var%20content=document.getElementsByClassName('entry-content')[0].innerHTML;var%20content2=content.replace(/<p>/,'');var%20endpos=content2.search(/<div%20id/);})()"); 
     }   
    } 
+0

不起作用。但是,謝謝你的幫助。你能告訴我一個關於如何使用AsyncTask下載html文件的好教程嗎? – MoBr114 2013-04-29 12:36:12

+0

你試過在你的html中做這個函數,只是從view.loadUrl(「javascript:functionName();」)這樣的活動中調用它。 – 2013-04-29 12:38:56

+0

html總是在變化,對我來說不可能改變html,因爲我不是它的作者。但是,如果你知道如何通過JavaScript加載網頁,然後繼續腳本,我可以寫一個HTML文件,將這樣做,並將其放入我的webview。 – MoBr114 2013-04-30 14:26:37