iteye_3033 2009-03-27 16:39
浏览 255
已采纳

Java怎么不能调用JavaScript的某些函数呢?

[quote]
我在Java中调用JavaScript代码时,老报异常。比如我在JavaScript代码中写了alert()函数时,就会报异常。我感觉Java只能条用JavaScript中的又返回值的函数,而且不能有document.write()等代码。
不知道我们的浏览器是怎么实现对JavaScript调用的。能不能有什么方法得到JavaScript执行后的值。因为在很多网页都是使用了JavaScript的来动态显示信息。

[/quote]
[code="java"]

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

public class Test2 {

public static void main(String[] args) throws Exception{
    test();
}

public static void test() throws Exception{
    ScriptEngineManager sem=new ScriptEngineManager();
    ScriptEngine se=sem.getEngineByExtension("js");
    se.eval("<script language='javascript'> document.write('aaaa')</script>");

}

}

异常提示:

Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorException: syntax error (#1) in at line number 1
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110)
at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:124)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
at test.script.Test2.test(Test2.java:15)
at test.script.Test2.main(Test2.java:9)

[/code]

  • 写回答

6条回答 默认 最新

  • ncradovi 2009-03-27 16:44
    关注

    来自java.sun.com
    import netscape.javascript.*;
    import java.applet.*;
    import java.awt.*;
    class MyApplet extends Applet {
    public void init() {
    JSObject win = JSObject.getWindow(this);
    JSObject doc = (JSObject) win.getMember("document");
    JSObject loc = (JSObject) doc.getMember("location");

         String s = (String) loc.getMember("href");  // document.location.href
         win.call("f", null);                 
    

    HTML page
    }
    }

    JSObject的主要方法
    public Object call(String methodName, Object args[])
    public Object eval(String s)
    public Object getMember(String name)
    public Object getSlot(int index)
    public void removeMember(String name)
    public void setMember(String name, Object value)
    public void setSlot(int index, Object value)
    public String toString()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!