在android webview中使用javascript

时间:2014-12-09 18:01:36

标签: javascript android webview

我正在使用从我项目中的本地HTML读取的webview。如果已经加载了html文件,我在HTML上使用了一些javascript。这是我的设置:

        final WebView webview = (WebView)rootView.findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        final String letter = "hello";

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url)
            {
                webview.loadUrl("javascript:(function() { " +
                        "var text = 'HELLO';"+
                        "document.body.innerHTML = document.body.innerHTML.replace(/"+letter+"/g, '<font color=\"#FF0000\">text</font>');"+
                        "})()");
            }
        });

        webview.loadUrl("file:///android_asset/2.html");

基本上现在这样做是将单词hello更改为红字文本。但我想要它做的是将这个词改成HELLO,正如我在javascript中声明的那样。所以我的问题是如何通过这种方式将变量合并到javascript代码中。顺便说一下,我知道我可以在我声明字符串字母的地方之外删除var text。但这只是我尝试做的一个小例子。

如果有人能解释如何在webview.LoadUrl中使用forloops,我将非常感激(javascript代码如下:

var color = "#FF0000";
var text = "fem";
for (i = 0; i < 5; i++) {
    text += "The number is " + i + "<br>";
}
   document.body.innerHTML = document.body.innerHTML.replace(/with/g,     '<font color="'+color+'">'+text+'</font>');

我如何将它放在webview.loadURL中。如果有什么不清楚的话,请不要犹豫。

1 个答案:

答案 0 :(得分:0)

您声明了文字,但您没有使用它。

webview.loadUrl("javascript:(function() { " +
                    "var text = 'HELLO';"+
                    "document.body.innerHTML = document.body.innerHTML.replace(/"+letter+"/g, '<font color=\"#FF0000\">'+text+'</font>');"+
                    "})()");