javax.scriptにJavaScriptライブラリをロードしますか?
-
27-09-2019 - |
質問
走りたい プロトビス JavaのJavaScriptと評価されたSVGコードを取得します。 Javax.script。*を使用してJavaScriptを実行しています。
public static void EvalScript() throws Exception {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
Object result = engine.eval("var vis = new pv.Panel().width(300).height(300)
.add (pv.Line).data ([1,0.5, 0.1, 0.01, 0.001, 0.3, 0.2,0.1,1])
.left (function () { return this.index * 30; })
.bottom (function (d) { return d * 250; });
vis.root.render();
vis.scene[0].canvas.innerHTML;");
System.out.println(result);
}
これは、私が通常で行われるように、私がプロトビス自体を決してロードしなかったので不平を言うでしょう
<script type="text/javascript" src="../protovis-r3.1.0.js"></script>
javax.scriptを介してJavaScriptを実行するときにライブラリをロードするという完全なJavaScriptをEval()コマンドに調達することに足りない方法はありますか?
解決
さて、なぜスクリプト全体をロードして渡さないのですか eval()
?そのJavaScriptの実行コンテキストがライブラリを解析して解釈する必要がある場合は、 なにか それをしなければなりません。もちろん、スクリプトコンテキストにメカニズムを提供して、スクリプト自体に同等のものを実行させることができます <script>
あなたが与えたタグの例ですが、それはまったく同じものになるでしょう。
Rhinoについてのあなたのコメントがわかりません。 JDK 1.6のJavaScriptインタープリター は サイ。
所属していません StackOverflow