在Android Webview中加载远程html页面后添加javascript代码

时间:2013-02-16 15:02:58

标签: javascript android webview

我在Android中遇到了webview的问题。 我正在使用一个包含2个片段的应用程序;第一个是EditText,第二个是webview。

是否可以通过调用修改加载页面的DOM的javascript函数来传递webview中加载的Edittext的字符串?

例如,在webview中加载后:

webview.loadUrl("http://google.it");

我想在google搜索页面的edittext中插入一个从java传递的字符串;我尝试了这个作为第一步:

webview.setWebViewClient(new WebViewClient() {  
            @Override  
            public void onPageFinished(WebView view, String url)  
            {  
               webview.loadUrl("javascript:(function() {alert();})()");  
            }  
        });  

但不显示警报。

感谢您的反馈,并抱歉我的英语不完美。

3 个答案:

答案 0 :(得分:6)

试试这个:

webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.setWebViewClient(new WebViewClient() {
   @Override
   public void onPageFinished(WebView view, String url){
       String javaScript ="javascript:(function() {alert();})()";
       webview.loadUrl(javaScript);
   }
});
webview.loadUrl(url);

以下是link来源!

答案 1 :(得分:0)

alert()有点棘手。您需要捕获它并将其转换为Toast。

检查一下: https://code.google.com/p/apps-for-android/source/browse/Samples/WebViewDemo/src/com/google/android/webviewdemo/WebViewDemo.java

答案 2 :(得分:0)

这项工作对我来说

  webview.loadUrl("javascript:function sagvelgardkharast() { document.getElementById('gkFooter').style.display='none'; " +
                        " document.getElementById('gkBottom5').style.display='none'; " + 
                        " } sagvelgardkharast(); ");