本文目錄一覽:
- 1、java程序中運行js腳本
- 2、怎麼把JS嵌入到Java程序中
- 3、java腳本里怎麼寫javascript
- 4、JS腳本怎麼運行?
- 5、如何在js腳本中寫java代碼
- 6、如何把java代碼嵌入到javascript中
java程序中運行js腳本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class ExecJs {
/**
* 記錄日誌類
*/
private Logger log = Logger.getLogger(ExecJs.class);
/**
* 後置處理,執行js腳本
* @param js
* @throws Exception
*/
public void execJs(String js, MapString,Object map) throws Exception {
if (log.isDebugEnabled()) {
log.debug(“execJs js : ” + js);
IteratorEntryString, Object it = map.entrySet().iterator();
while (it.hasNext()) {
EntryString, Object entry = (EntryString, Object) it.next();
log.info(“EXECJS MAP : ” + entry.getKey() + “—” + entry.getValue());
}// end while
}// end if
if (“”.equals(js) || js == null) {
log.info(“EXECJS ERROR : JAVASCRIPT CONTENT IS NULL”);
} else if(map == null || map.size()=0){
log.info(“EXECJS ERROR : MAP CONTENT IS NULL”);
} else {
// 獲取腳本引擎
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName(“javascript”);
// 綁定數據
ScriptContext newContext = new SimpleScriptContext();
Bindings bind = newContext.getBindings(ScriptContext.ENGINE_SCOPE);
bind.putAll(map);
try {
engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);
engine.eval(js);
} catch (Exception e) {
log.info(“EXECJS EXCEPTION : EXECUTE JAVASCRIPT EXCEPTION”, e);
throw (e);
}// end try
}// end if
}
}
怎麼把JS嵌入到Java程序中
1.取得腳本解釋器的管理器Manager
2.從管理器中取得js的解釋器實例ScriptEngine
3.取得存儲javascript變量的Bindings實例
4.把一個java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運行結果,如果執行中發生錯誤,會拋出ScriptException異常。
例:運行javascript腳本的一個java程序
throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//從管理器中獲取js的解釋器//定義我們要運行的腳本文件Stringfilename=null;//通過解釋器來獲得存儲javascript變量的Bindings的實例,使它們提供給腳本。Bindingsbindings=js.createBindings;//在map中獲取和設置值的方法publicObjectget;//使用我們的name/value對(即javascript變量)Bindingsbindings=newSimpleBindings(defaults);//創建一個變量,用於存放腳本執行的內容ScriptContextcontext=newSimpleScriptContext();//設置那些Bindings在Context中,使它們可讀。但這樣的變量定義的腳本不要放入我們的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳過空行if(line.charAt(0)==‘#‘)continue;//跳過命令intpos=line.indexOf(“:”);if(pos==-1){thrownewIllegalArgumentException(“syntax:”+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘”‘lastchar==‘”‘){//雙引號引用的值為字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果開始是一個數字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//沒有數字,是一個stringdefaults.put(name,value);}}elseif(“true”.equals(value)){//處理布爾值defaults.put(name,Boolean.TRUE);}elseif(“false”.equals(value)){defaults.put(name,Boolean.FALSE);}elseif(“null”.equals(value)){//處理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一對大括號之內,則執行javascript代碼Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情況,剛好是一個字符串defaults.put(name,value);}}}//一個簡單的類的測試程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set
java腳本里怎麼寫javascript
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
JS腳本怎麼運行?
常見的執行js代碼都是放入到HTML引入後,然後通過HTML文件來執行胡查看代碼。顯然這是比較麻煩的事情,如果電腦裡面安裝了node.js,可以使用node來直接使用node來運行想要運行的js文件。
html
body
script language=”javascript”
function Card(owner,rate)
{
this.Owner=owner;
this.Rate=rate;
}
var mycard = new Card(“X”,”150″);
document.write(“name:”+mycard.Owner+”speed:”+mycard.Rate);
/script
/body
/html
擴展資料:
JavaScript語言中採用的是弱類型的變量類型,對使用的數據類型未做出嚴格的要求,是基於Java基本語句和控制的腳本語言,其設計簡單緊湊。
腳本簡單地說就是一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進制程序執行效率要稍低一些。
參考資料來源:百度百科-JS腳本
如何在js腳本中寫java代碼
就在function裡面寫就可以,js中只能指定動作,具體顯示還得讓jsp頁面來做。
如何把java代碼嵌入到javascript中
1.取得腳本解釋器的管理器Manager
2.從管理器中取得js的解釋器實例ScriptEngine
3.取得存儲javascript變量的Bindings實例
4.把一個java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運行結果,如果執行中發生錯誤,會拋出ScriptException異常。
例:運行javascript腳本的一個java程序
throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//從管理器中獲取js的解釋器//定義我們要運行的腳本文件Stringfilename=null;//通過解釋器來獲得存儲javascript變量的Bindings的實例,使它們提供給腳本。Bindingsbindings=js.createBindings;//在map中獲取和設置值的方法publicObjectget;//使用我們的name/value對(即javascript變量)Bindingsbindings=newSimpleBindings(defaults);//創建一個變量,用於存放腳本執行的內容ScriptContextcontext=newSimpleScriptContext();//設置那些Bindings在Context中,使它們可讀。但這樣的變量定義的腳本不要放入我們的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳過空行if(line.charAt(0)==‘#‘)continue;//跳過命令intpos=line.indexOf(“:”);if(pos==-1){thrownewIllegalArgumentException(“syntax:”+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘”‘lastchar==‘”‘){//雙引號引用的值為字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果開始是一個數字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//沒有數字,是一個stringdefaults.put(name,value);}}elseif(“true”.equals(value)){//處理布爾值defaults.put(name,Boolean.TRUE);}elseif(“false”.equals(value)){defaults.put(name,Boolean.FALSE);}elseif(“null”.equals(value)){//處理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一對大括號之內,則執行javascript代碼Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情況,剛好是一個字符串defaults.put(name,value);}}}//一個簡單的類的測試程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set
原創文章,作者:UOKXK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/325513.html