关于java调用js,document不能用问题
来源:互联网 发布:苏宁易购淘宝旗舰店 编辑:程序博客网 时间:2024/06/06 21:59
1.
Document mydoc = null;
public BareBonesBrowserLaunch(String url) throws MalformedURLException, IOException{
mydoc = Jsoup.parse(new URL(url),30000);//利用Jsoup实现document树
}
2.
public Element getElementById(){//实现document的方法
System.out.println("Java println:\t"+mydoc.getElementById(id));
return mydoc.getElementById(id);//返回的是Element对
}
3.java中调用js
/**
* 调用js中的方法
* @throws Exception
*/
public static void ExcuteJs(String url) throws Exception{
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("JavaScript");
String path =this.getServlet().getServletContext().getRealPath("/WEB-INF/js/jituan.js");
File f = new File(path);
Reader d = new InputStreamReader(new FileInputStream(f));
se.eval(d);
Invocable inv = (Invocable) se;
se.put("document", new BareBonesBrowserLaunch(url));////关联对象,很重要,关联javascript的document对象为BareBonesBrowserLaunch,即自己实现的document对象
String value = (String) inv.invokeFunction("load",url);
System.out.println(value);
//直接调用js方法
// ScriptEngineManager factory = new ScriptEngineManager();
// ScriptEngine scriptEngine = factory.getEngineByName("JavaScript");
// try {
// // String script = "function load(url){var dom=null;if(document.implementation && document.implementation.createDocument){dom=new window.XMLHttpRequest();}else{dom=new ActiveXObject(\"Microsoft.XMLHttp\");} dom.open(\"GET\",url,false); dom.send(null); return dom;}";
//
// // se.eval(script);
// Invocable inv2 = (Invocable) se;
// String res=(String)inv.invokeFunction("load",url);
//
// System.out.println(res);
// }catch(Exception e){e.printStackTrace();}
}
- 关于java调用js,document不能用问题
- JS中addEventListener不能用的问题
- 关于MVC不能用EasyUI的问题
- android应用webview时js接口不能用的问题
- ie11下alt+d不能用js监听问题
- js中replace函数不能用的问题
- 关于PORTC端口PC2-PC5不能用的问题
- 关于delphi2007升级后的不能用的问题
- 关于android SDK adb命令不能用问题
- 关于tomcat5.5不能用ip地址访问的问题
- 关于IE中getElementsByClassName不能用的问题
- 关于Android AVD的方向键DPAD不能用的问题
- 关于Android studio中httpclient不能用的问题
- 关于阿里云不能用公用ip访问的问题
- 关于手机上不能用window.close的问题
- 关于java重载为什么不能用不同返回值区分
- js forEach 不能用 break
- [Java] Myeclipse 解决到期不能用的问题
- Android选择控件,CheckBox和RadioButton使用大全
- calc()实现CSS响应式布局
- 2017 Multi-University Training Contest
- Lucas模板 hdu3037
- MyBatis + Spring Boot
- 关于java调用js,document不能用问题
- 大顶堆和小顶堆--Java版
- 静默安装oracle11g
- react-navigation的使用
- HDOJ1412 排序水题
- JVM分为哪些区,每一个区干吗的?
- 卷积神经网络CNN(基础理论)
- Webpack学习笔记
- 插入排序:直接插入排序