Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Webview中运行javascript代码_Javascript_Android_Webview - Fatal编程技术网

在Webview中运行javascript代码

在Webview中运行javascript代码,javascript,android,webview,Javascript,Android,Webview,我有一个在android中使用的webview,我试图通过点击按钮触发javascript。我正在尝试使用下面的代码将类的颜色更改为红色。但我似乎无法让它工作 final WebView wb=(WebView)findViewById(R.id.webView2); wb.loadUrl("javascript:" + "var FunctionOne = function () {" + " try{document.getE

我有一个在android中使用的webview,我试图通过点击按钮触发javascript。我正在尝试使用下面的代码将类的颜色更改为红色。但我似乎无法让它工作

final WebView wb=(WebView)findViewById(R.id.webView2);
wb.loadUrl("javascript:"
                + "var FunctionOne = function () {"
                + "  try{document.getElementsByClassName('test')[0].style.color='red';}catch(e){}"
                + "};");

从kitkat开始,使用evaluateJavascript方法代替loadUrl来调用如下javascript函数

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
        webView.evaluateJavascript("var FunctionOne = function () {"
            + "  try{document.getElementsByClassName('test')[0].style.color='red';}catch(e){}"
            + "};", null);
    } else {
        webView.loadUrl("javascript:"
            + "var FunctionOne = function () {"
            + "  try{document.getElementsByClassName('test')[0].style.color='red';}catch(e){}"
            + "};");
    }
通过添加以下行为您的webview启用Javascript

wb.getSettings().setJavaScriptEnabled(true);
activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>
资产/webview1.html

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>WebView1</title>
<meta forua="true" http-equiv="Cache-Control" content="max-age=0"/>
</head>

<body style="background-color:#212121">
<script type="text/javascript">
function testEcho(p1){
document.write(p1);
}
</script>
</body>

</html>

网络视图1
功能测试仪(p1){
文件编写(p1);
}

回答得很好!从Android上运行javascript有很多非常复杂的答案…伙计们甚至编写复杂的库和东西…这一个看起来非常完美!如果您仍在努力获取像显示警报对话框这样简单的内容,请检查此答案(可能重复)
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>WebView1</title>
<meta forua="true" http-equiv="Cache-Control" content="max-age=0"/>
</head>

<body style="background-color:#212121">
<script type="text/javascript">
function testEcho(p1){
document.write(p1);
}
</script>
</body>

</html>