Выполнить код JavaScript

А вот допустим, я вручную нашёл название нужной функции. Как ее выполнить через этот Jint и получить от нее результат? :thinking: В интернете в примерах они просто весь скрипт выполняют, а не отдельную функцию.

Тут примеры с Invoke.

Там функция задаётся вручную и, затем, вызывается. А мне надо загрузить большой скачанный скрипт и из него выполнить функцию.

engine.Execute(@"myscript
 
    myFunc();
");

то есть, как-то так?

Так говорю ж

:arrow_down:

You can invoke JavaScript function reference

var add = new Engine()
    .Execute("function add(a, b) { return a + b; }")
    .GetValue("add");

add.Invoke(1, 2); // -> 3

or directly by name

var engine = new Engine()
   .Execute("function add(a, b) { return a + b; }");

engine.Invoke("add", 1, 2); // -> 3

кстати,


            var engine = new Engine().Execute(myText);

выдаёт экскепшен document is not defined. Чё за документ? :thinking:
myText это большой скачанный скрипт. Я его в файл сохранил и из файла гружу.

document это стандартная глобальная переменная в браузерном варианте JS.

Похоже Jint не поддерживает это (он ж не браузер), так что если оно нужно — надо искать другие варианты (Селениум как вариант). Надо посмотреть что оно с документом делает, по идее не должно ничего важного с ним делаться в этой функции ютуба, иначе бы и Питоновский вариант не работал.

У youtube-dl вообще просто свой небольшой выполнятор JS youtube-dl/jsinterp.py at master · ytdl-org/youtube-dl · GitHub

Эта функция, вроде, возвращает массив интегеров.