javascript
js 和java有关系吗,javascript和JAVA有什么关系
2017-07-28
Java調用javascript
package co。test;
import java。io。FileReader;
import java。io。LineNumberReader;
import org。mozilla。 javascript。Context;
import org。mozilla。javascript。Function;
import org。mozilla。javascript。Scriptable;
public class JSExploration
{
private Context cx;
private Scriptable scope;
public JSExploration()
...全部
package co。test;
import java。io。FileReader;
import java。io。LineNumberReader;
import org。mozilla。
javascript。Context;
import org。mozilla。javascript。Function;
import org。mozilla。javascript。Scriptable;
public class JSExploration
{
private Context cx;
private Scriptable scope;
public JSExploration()
{
this。
cx = Context。enter();
this。scope = cx。initStandardObjects();
}
public Object runJavaScript(String filename)
{
String jsContent = this。
getJsContent(filename);
Object result = cx。evaluateString(scope, jsContent, filename, 1, null);
return result;
}
private String getJsContent(String filename)
{
LineNumberReader reader;
try
{
reader = new LineNumberReader(new FileReader(filename));
String s = null;
StringBuffer sb = new StringBuffer();
while ((s = reader。
readLine()) != null)
{
sb。append(s)。append("\n");
}
return sb。toString();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e。
printStackTrace();
return null;
}
}
public Scriptable getScope()
{
return scope;
}
public static void main(String[] args)
{
String filename = System。
getProperty("user。dir") + "/jsmap。js";
JSExploration jsExploration = new JSExploration();
Object result = jsExploration。
runJavaScript(filename);
Scriptable scope = jsExploration。getScope();
Function sum = (Function) scope。
get("sum", scope);
Function isPrime = (Function)sum。call(Context。getCurrentContext(), scope, sum, new Object[] {2,8});
Object ss = isPrime。
call(Context。getCurrentContext(), sum, isPrime, new Object[] {2,8});
System。out。println(Context。
toString(ss));
}
}
試驗了一個java 調用 javascript 的例子,如果把jsmap。js中的與this 有關的代碼注銷的話程序就可以正常運行。不住銷掉的話就會報個運行時錯誤。
。。
js 代碼如下(有關this 的代碼已注銷):
function
sum(x, y) {
// this。formulaeObject = null;
// this。
formulaeObject["vager"] = function (c, d) {
// return (c + d)/2;
// };
var vager = 1000;
return function (x,y){return x + y + vager;} ;
}
編輯特別推薦:
Java處理帶BOM的文本
幾個主流的Java連接池
java內省機制。收起
總結
以上是生活随笔為你收集整理的js 和java有关系吗,javascript和JAVA有什么关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 升级iOS14.5正式版后跟踪变灰怎么办
- 下一篇: android webview java