2013-04-28 47 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