У меня проблемы с получением $ .getScript jquery для работы. Вот тестовый файл, demo.html:
<!DOCTYPE html>
<script src="/xyz/scripts/jquery-1.11.0.min.js"></script>
<script>
function wow() { return 3; }
</script>
<h1>Demo</h1>
<script>
console.log(wow);
console.log(wow());
</script>
При просмотре этого в Chrome в Windows 10 на консоли отображается следующее:
Navigated to https://example.org/xyz/tools/demo.html
demo.html:11 ƒ wow() { return 3; }
demo.html:12 3
что правильно.
Затем я перемещаю определение функции в файл myModule.js:
function wow() { return 3; }
и создайте demo2.html, который является demo.html с определением функции, замененным вызовом getScript:
<!DOCTYPE html>
<script src="/xyz/scripts/jquery-1.11.0.min.js"></script>
<script>
$.getScript("myModule.js");
</script>
<h1>Demo</h1>
<script>
console.log(wow);
console.log(wow());
</script>
На этот раз я получаю
Navigated to https://example.org/xyz/tools/demo2.html
demo2.html:11 Uncaught ReferenceError: wow is not defined
at demo2.html:11
Я неправильно понимаю, для чего предназначен $ .getScript или как он используется?
Добавление
В ответ на предложение обернуть мои вызовы console.log в оболочку $ .ready, я попытался сделать следующее:
<!DOCTYPE html>
<script src="/xyz/scripts/jquery-1.11.0.min.js"></script>
<script>
$.getScript("myModule.js");
</script>
<h1>Demo</h1>
<script>
$.ready(function() {
console.log(wow);
console.log(wow());
});
</script>
На этот раз я не получил сообщение об ошибке , но также значения wow и wow () не были записаны в консоль.