導航:首頁 > 編程語言 > java模擬瀏覽器執行js

java模擬瀏覽器執行js

發布時間:2023-08-18 21:52:36

㈠ 如何在java中調用js方法

在Java中調用js文件中的function,傳入調用參數,並獲取返回值
js文件中的merge函數將兩個參數a,b相加,並返回c。
// expression.js
function merge(a, b) {
c = a * b;
return c;
}

在Java代碼中讀取js文件,並參數兩個參數,然後回去返回值。
package com.sinaapp.manjushri;

import java.io.FileReader;
import javax.script.Invocable;

import javax.script.ScriptEngine;

import javax.script.ScriptEngineManager;
/** * Java調用並執行js文件,傳遞參數,並活動返回值 * * @author manjushri */

public class ScriptEngineTest {

public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");

String jsFileName = "expression.js"; // 讀取js文件

FileReader reader = new FileReader(jsFileName); // 執行指定腳本
engine.eval(reader);

if(engine instanceof Invocable) {
Invocable invoke = (Invocable)engine; // 調用merge方法,並傳入兩個參數

// c = merge(2, 3);

Double c = (Double)invoke.invokeFunction("merge", 2, 3);

System.out.println("c = " + c);
}

reader.close();

}
}

輸出結果:
c = 5.0

㈡ java怎樣調用js

//java調用js腳本的例子
=newScriptEngineManager();
ScriptEnginejsEngine=scriptEngineMgr.getEngineByName("JavaScript");
StringBuffersb=newStringBuffer();
//組裝js代碼,也可以從文件讀入腳本到sb變數
jsEngine.put("myContext",myContext);//放置其專他參數
jsEngine.eval(sb.toString());//解析屬、執行腳本

㈢ 如何讓瀏覽器運行javascript代碼的

1.首先點擊打開瀏覽器的菜單【工具】,然後選擇【選項】-【internet選項】;如果是IE用戶,內可以直接在IE圖標上點擊右鍵,選容擇屬性進入。
2.打開Internet選項設置窗口後,點擊【安全】選項卡,點擊【自定義級別】。
3.在彈出的【自定義級別】窗口中,找到【腳本】選項一欄。
4.然後點擊下面的【Java小程序腳本】和【活動腳本】下的【啟用】
5.或者也可以將腳本欄目下的所有項都選擇到【啟用】,
6.設置完成後,點擊窗口右下角的【確定】按鈕,彈出詢問是否更改時,點擊【是】。
7.最後,在Internet屬性窗口中,點擊【應用】-【確定】關閉退出即可在瀏覽器中啟用Javascript代碼並顯示特效了。

㈣ java調用請求頁面js方法有哪些

jsp頁面中調用javascript方法,可以直接寫在標簽的onclick屬性,如下示例:
<html>
<head>
<script src="debuggap.js" type="text/javascript"></script>
<script type="text/javascript">
var startTop = 120;
var startPos = 1;
var totalNum = 0;
var itemHeight = 40;
var con1 = '';
function updateHtml(type, type2) {
totalNum = window.programList.size();

//初始化頁面
totalNum = programList.size();
for (i = 0; i < totalNum; i++) {
con1 += programList.get(i).getId()
+ programList.get(i).getName();
}

var Book =
{
Name: programList.get(0).getId()
};

document.getElementById("content").innerHTML = "彈出對話框,測試" + type
+ type2 + "測試" + totalNum + con1+Book.Name;

alert("dialog");
}

</script>
</head>
<body>
這是一個js與android的例子
<a onClick="window.ceshi.updateHtml()" href="">彈出對話框</a> 調用JavaScript方法
<span id="content"></span>

</body>
</html>

㈤ java怎麼調用javascript

可參考:
package javaIjs;

/**
* @param args
*/

import java.io.FileReader;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

/**
* Java調用並執行js文件,傳遞參數,並活動返回值
*
* @author manjushri
*/
public class ScriptEngineTest {

public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");

String jsFileName = System.getProperty("user.dir")+"/src/javaIjs/expression.js";
// 讀取js文件
FileReader reader = new FileReader(jsFileName);
// 執行指定腳本
System.out.println(engine.getContext().getReader());
engine.eval(reader);
if (engine instanceof Invocable) {
Invocable invoke = (Invocable) engine;
// 調用merge方法,並傳入兩個參數
// c = merge(2, 3);
Double c = (Double) invoke.invokeFunction("merge1", 21, 3);
System.out.println("c = " + c);
}
reader.close();
}
}

㈥ 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, Map<String,Object> map) throws Exception {

if (log.isDebugEnabled()) {

log.debug("execJs js : " + js);

Iterator<Entry<String, Object>> it = map.entrySet().iterator();

while (it.hasNext()) {

Entry<String, Object> entry = (Entry<String, 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

}

}

㈦ 請問怎麼寫java調用node環境運行js代碼

nodejs 運行代碼可以在命令行中使用命令「 node /path/xxx.js 」來執行

所以我們可以藉助 java 的 Runtime 類,可以執行系統本地的命令, 例如:

Linux系統下:Runtime.getRuntime().exec("node /path/xxx.js");

Window系統下:Runtime.getRuntime().exec("cmd /c node /path/xxx.js");


當然推薦使用 Apache-Commons-Exec 工具類,可以屏蔽不同系統命令差異,並且獲取結果更簡單

工具類使用可以參考此文:網頁鏈接

㈧ Java調用JS腳本里的方法

本例子使用了JDK 以上的javax script包 通過Invocable介面實現JAVA調用JS腳本里的方法 本例中調用分為內部執行腳本和外部執行腳本 外部執行腳本分為不帶參數調用和帶參數調用 主要採用invokeFunction方法調用 ObjectinvokeFunction(String name Object… args) 用於調用腳本中定義的頂層程序和函數 ObjectinvokeMethod(Object thiz String name Object… args) 對以前的腳本執行中已經編譯的腳本對象(以 ScriptEngine 的狀態保持)調用某一方法 package de javase; import javax script Invocable; import javax script ScriptEngineManager; import javax script ScriptEngine; import java io File; import java io Reader; import java io FileReader; public class AjavaInvokingFunction { public static void main(String[] args) { // 獲得一個JavaScript腳本引擎 也可以是ECMAScript腳本引擎 ScriptEngineManager manager = new ScriptEngineManager() ScriptEngine engine = manager getEngineByName( JavaScript ) String titlescript = function sayTitle() { + println( 源碼實例 使用javax script調用JS腳本里的方法 ) + println( ) + } ; try {

// 調用內部腳本執行 engine eval(titlescript) // 轉換為Invocable Invocable invocableEngine = (Invocable) engine; // 不帶參數調用sayTitle方法 invocableEngine invokeFunction( sayTitle ) // 調用外部腳本執行 // 創建JS文件的File對象 並讀入流 File functionscript = new File( ajava js ) Reader reader = new FileReader(functionscript) // 開始執行ajava js里的程序 engine eval(reader) // 不帶參數調用sayHello方法 invocableEngine invokeFunction( sayHello ) // 帶參數調用sayHello方法 invocableEngine invokeFunction( sayHello mark ) } catch (Exception e) { e printStackTrace() } } } ajava js文件 function sayHello(){ sayHello(null) } function sayHello(name){ if(name==null){ println( 歡迎你!請注冊Ajava會員 ) }else{ println(name+ 獨立JAVA社區歡迎你 ) } } 運行結果(控制台) 源碼實例 使用javax script調用JS腳本里的方法 lishixin/Article/program/Java/hx/201311/26436

閱讀全文

與java模擬瀏覽器執行js相關的資料

熱點內容
怎麼設置文件打開密碼 瀏覽:811
手機版qq客服代碼怎麼用 瀏覽:24
fme可以打開哪些文件 瀏覽:339
好看的qq密碼 瀏覽:293
安卓唯一標識有哪些 瀏覽:243
win10ime 瀏覽:271
手機號大數據保護停機是什麼意思 瀏覽:81
兩個蘋果手機怎麼隔空投送app 瀏覽:903
ps修改有褶皺的文件 瀏覽:417
javadbfreader 瀏覽:307
蘋果手機數字代碼是什麼 瀏覽:66
驅動程序順序安裝腳本 瀏覽:665
word文件里怎樣查重 瀏覽:219
mx5系統基帶版本 瀏覽:184
ntlea全域通win10 瀏覽:171
qq怎麼查看別人的收藏 瀏覽:135
地震三參數matlab程序 瀏覽:57
怎樣給優盤文件加密軟體 瀏覽:7
收拾文件有哪些小妙招 瀏覽:431
pdf文件去底網 瀏覽:253

友情鏈接