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条)

报告相同问题?

悬赏问题

  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止