【问题标题】:Android Development: WebView JavaScript not workingAndroid 开发:WebView JavaScript 不工作
【发布时间】:2013-04-28 19:13:49
【问题描述】:
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';})()");
}

大家好,

我有一个问题: 我想将一个网页加载到我的 Web 视图中,然后在其上运行一个 javascript,以删除所有不相关的内容并重新定义背景颜色。我的 javascript 可以在 pc 上运行,但不能在 android 浏览器或 webview 中运行。你知道代码有什么问题吗?

API 级别 11 目标 17

如果你们中有人知道如何下载 html 文件的好教程,那就太好了

【问题讨论】:

标签: java javascript android


【解决方案1】:

你试过了吗:

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/);})()");
        }         
    }

【讨论】:

  • 不起作用。但感谢您的帮助。你能告诉我一个关于如何使用 AsyncTask 下载 html 文件的好教程吗??
  • 您是否尝试在您的 html 中创建此函数,然后从 view.loadUrl("javascript:functionName();"); 之类的活动中调用它?
  • html 总是在变化,对我来说不可能更改 html,因为我不是它的作者。但是,如果您知道如何通过 javascript 加载网页,然后继续执行脚本,我可以编写一个 html 文件来执行此操作并将该文件放入我的 webview。
猜你喜欢
  • 2020-07-21
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 2018-11-09
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多