gpt4 book ai didi

java - 将 javax.script 包用于具有外部 src 属性的 javascript

转载 作者:行者123 更新时间:2023-11-30 18:59:34 24 4
gpt4 key购买 nike

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

<script type="text/javascript"
src="http://someplace.net/stuff.ashx"></script>

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

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

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

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");

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

...但是“JavaScript”引擎在默认情况下对 TheStuff 类一无所知,因为该信息位于远程 .ashx 文件中。我可以让它查看上面的 src 字符串吗?

最佳答案

你好像在问:

How can I get ScriptEngine to evaluate the contents of a URL instead of just a string?

这准确吗?

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

尝试这样的事情:

URL url = new URL( "http://someplace.net/stuff.ashx" );
InputStreamReader reader = new InputStreamReader( url.openStream() );
engine.eval( reader );

关于java - 将 javax.script 包用于具有外部 src 属性的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/94582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com