Загрузка библиотеки JavaScript в Javax.Script?
-
27-09-2019 - |
Вопрос
Я хочу бежать Протовис JavaScript из Java и получите оценщик 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>
Есть ли хороший способ, короткий из источников в полном JavaScript в команду eval (), загрузки библиотеки при запуске JavaScript через javax.script?
Решение
Ну, почему вы не загрузите весь сценарий и передайте его eval()
? Если вы хотите, чтобы этот контекст выполнения JavaScript для анализа и интерпретации библиотеки, затем что-то должен сделать это. Вы, конечно, могли бы, конечно, поставлять механизм контекста сценария, чтобы позволить саму сценарию сделать эквивалент <script>
Пример тега вы дали, но оно в конечном итоге будет точно такое же.
Я не понимаю ваш комментарий о Rhino. Переводчик JavaScript в JDK 1.6 является Носорог