Код Javascript в Java — ошибка ссылки: «jQuery» не определен

#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 »