扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
就在function里面写就可以,js中只能指定动作,具体显示还得让jsp页面来做。
站在用户的角度思考问题,与客户深入沟通,找到乌审网站设计与乌审网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟主机、企业邮箱。业务覆盖乌审地区。
在Android上怎样实现JAVA和JS交互呢?Android的webview是基于webkit内核的,webview中集成了js与java互调的接口函数,通过addJavas criptInterface方法,可以将Java的类注册进webkit,给网页上的js进行调用,而且还可以通过loadUrl方法是给webkit传递一个URL,供浏览器来进行解析,实现Java和js交互。
要想运行网页上的js脚本,webview必须设置支持Javas cript。
Java代码
1mWebview.getSettings().setJavas criptEnabled(true);
然后是设置webview要加载的网页:
web的网页:webView.loadUrl("");
本地的网页:webView.loadUrl(""); //本地的存放在:assets文件夹中
webview做完基本的初始化后我们还要要给它,加进一个回调的代理类Javas criptInterface,并给它一个调用的名称:ncp
Java代码
1mWebView.addJavas criptInterface(new Javas criptInterface(),"ncp");
Javas criptInterface可以是一个普通的Java类,类实现的方法,均可被js回调:
Java代码
final class Javas criptInterface {
public int callOnJs() {
return 1000;
}
public void callOnJs2(String mode) {
//TODO
}
}
Java要调用js的方法,只需知道js的方法名称即可:
Java代码
1mWebView.loadUrl("javas cript:onSaveCallback()");
要在java中执行js代码,首先明白,java不支持浏览器本身的方法。支持自定义的js方法,否则会报错
先新建一个js文件:jsss.js
内容如下:
function aa(a,b){ return a+b;
}
然后在java中写代码:
public class ZipTest {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String jsFileName="G:\\javaPro\\zmwmcc\\WebRoot\\jsss.js";
FileReader reader = new FileReader(jsFileName); // 执行指定脚本 engine.eval(reader);
if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 调用merge方法,并传入两个参数
Double c = (Double)invoke.invokeFunction("aa", 2, 3); //调用了js的aa方法
System.out.println(c);
}
// engine.eval("alert(\"js alert\");"); // 不能调用浏览器中定义的js函数 // 错误,会抛出alert引用不 }
}
HTML中标签的id是唯一的,document.all返回的应该个数组,通过id去找标签,只能找到一个,就是最后一个id等于你所指的那个。
你看看我给你的是不是你想要的结果:
script
function show(isChecked,showName,num){
for(var n = 1; n = num; n++){
document.getElementById(showName + n).style.display=isChecked ? 'block' : 'none';
}
}
/script
div
table width="100%" border="1" cellspacing="0" cellpadding="0"
tr
tdinput name=checkbox2 type=checkbox onclick="show(this.checked,'jf',2)"aaa/td
tdinput name=checkbox3 type=checkbox onclick="show(this.checked,'eth',2)"bbb/td
tdinput name=checkbox5 type=checkbox onclick="show(this.checked,'grid',2)"ccc/td
/tr
/table
table width="100%" border="1" cellspacing="0" cellpadding="0"
tr
td id="jf1" style="display:none"aaa/td
td id="eth1" style="display:none"bbb/td
td id="grid1" style="display:none"ccc/td/td
/tr
tr
td id="jf2" style="display:none"aaa/td
td id="eth2" style="display:none"bbb/td
td id="grid2" style="display:none"ccc/td/td
/tr
/table
/div
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流