我正在使用从我项目中的本地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中。如果有什么不清楚的话,请不要犹豫。
答案 0 :(得分:0)
您声明了文字,但您没有使用它。
webview.loadUrl("javascript:(function() { " +
"var text = 'HELLO';"+
"document.body.innerHTML = document.body.innerHTML.replace(/"+letter+"/g, '<font color=\"#FF0000\">'+text+'</font>');"+
"})()");