首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有外部src属性的javascript的javax.script包

使用带有外部src属性的javascript的javax.script包
EN

Stack Overflow用户
提问于 2008-09-18 17:16:48
回答 2查看 2.3K关注 0票数 1

假设我有一些javascript,如果在浏览器中运行,它会像这样输入...

代码语言:javascript
复制
<script type="text/javascript"
    src="http://someplace.net/stuff.ashx"></script>

<script type="text/javascript">
   var stuff = null;
   stuff = new TheStuff('myStuff');
</script>

..。我想使用java1.6中的javax.script包在jvm中(而不是applet中)运行这段代码并获取相关内容。如何让引擎知道在远程.ashx文件中找到了要构造的类的源代码?

例如,我知道要把java代码写成...

代码语言:javascript
复制
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");

engine.eval( "stuff = new TheStuff('myStuff');" );
Object    obj = engine.get("stuff");

...but默认情况下,"JavaScript“引擎不知道有关TheStuff类的任何信息,因为这些信息在远程.ashx文件中。我能让它看起来像上面的src字符串吗?

EN

回答 2

Stack Overflow用户

发布于 2008-09-18 21:00:33

看起来你在问:

如何让ScriptEngine计算URL的内容而不只是一个字符串?

这是准确的吗?

ScriptEngine不提供用于下载和评估URL内容的工具,但它很容易做到。ScriptEngine允许您传入一个Reader对象,它将使用该对象读取脚本。

尝试如下所示:

代码语言:javascript
复制
URL url = new URL( "http://someplace.net/stuff.ashx" );
InputStreamReader reader = new InputStreamReader( url.openStream() );
engine.eval( reader );
票数 2
EN

Stack Overflow用户

发布于 2008-09-18 21:01:03

您是否正在尝试从java1.6applet访问浏览器页面中的javascript对象?如果是这样的话,你就走错了路。这不是脚本引擎的作用。它是为了在jvm中运行javascript,而不是为了让applet在浏览器中访问javascript。

这里有一个blog entry,它可能会让你有所作为,但它看起来没有多少支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/94582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档