#javascript #java #jquery
#javascript #java #jquery
Вопрос:
Я запускаю код javascript на Java. Моя цель — найти координаты элементов на HTML-странице. Если я запускаю свой код, я получаю ReferenceError: "jQuery" is not defined in <eval>
. Я попытался добавить var $ = jQuery;
в свой скрипт, но это не помогло. В этой строке я получаю ошибку ссылки. Я новичок в javascript. Кто-нибудь может помочь, пожалуйста? Большое вам спасибо!
public static void main(String[] args) throws ScriptException, IOException, Exception {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("script.js"));
Invocable invocable = (Invocable) engine;
Object result = invocable.invokeFunction("fun2");
System.out.println(result);
}
}
Мой script.js является
var funkce = function() {
var elem = $("div#some_container_id h1")
var elem_offset = elem.offset();
var elem_height = elem.height();
var elem_width = elem.width();
return elem_height;
}
var $ = jQuery;
var fun2 = $(document).ready(funkce);
Комментарии:
1. У вас действительно где-то включен jQuery?
2. Я добавил jquery 3.1.1 librabry… Вы имеете в виду это?
3. Однако вам действительно нужно включить файл. Простого наличия скрипта jQuery в определенной папке недостаточно. Вероятно, вам нужно просмотреть документацию библиотеки Java, чтобы узнать, как это сделать. Я никогда раньше не запускал JS через Java.
4. Вам нужно
eval
получить файл jQuery передeval
script.js
файлом.5. Точно так же, как программа Java может содержать несколько файлов, так и программа Javascript может. В вашем Java-коде вы загрузили свой скрипт с помощью этого
engine.eval(new FileReader("script.js"));
, вам нужно сделать то же самое с файлом jquery:engine.eval(new FileReader("jquery.js"));
, и это нужно сделать перед загрузкой «script.js »