PHP脚本如何执行JS脚本的方法

JavaScript017

PHP脚本如何执行JS脚本的方法,第1张

1、php调用js中的值

在z.php页面中有这样一段代码:

<script type="text/javascript" >var url="aaaa*"</script><? $key="<script type=text/javascript>document.write(url)</script>"echo $key?>

2、php调用js中的方法(函数)<script type="text/javascript">function test() { var t1=3 t1 = t1+2 alert(t1) //return t1} </script><?php echo "<script type='text/javascript'>test()</script>"?>

常见的执行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脚本

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

}

}