Как следует из названия, я хочу загрузить скрипт, разместив тег сценарий в заголовке веб-сайта, а не в его нижней части.
Краткий пример/моя попытка будет такой:
Файл HTML:
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title></title>
<script src = "js/jquery-3.3.1.js">
$(document).ready( function () {
$.getScript("./js/script.js");
} );
</script>
</head>
<body>
<p id = "para">hey there waht's up</p>
<body>
</html>
Внешний файл JS:
$("#para").click( function () {
$("#para").hide();
})
Но это не работает. Есть идеи, почему? Я гоняюсь за единорогами?
Согласно документация MDN:
If a script element has a src attribute specified, it should not have a script embedded inside its tags.
Поэтому переместите код в отдельный тег script.
<script src = "js/jquery-3.3.1.js"></script>
<script>
$(document).ready( function () { $.getScript("./js/script.js"); } );
</script>
Спасибо за ответ. Я сделал то, что вы предложили, но это все еще не работает. Так что просто чтобы проверить, что у меня нет ошибок в коде, я добавил импорт скрипта внизу раздела body, и это сработало. Что-то еще, что я мог пропустить?
jquery-3.3.1.js:9600 Access to XMLHttpRequest at 'file:///home/deus/Projects/web/test_jquery/js/script.js?_=1554722417976' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
Думаю, $.getScript не работает для локальных файлов.
@DeusDeceit : stackoverflow.com/questions/20041656/…
Да, когда обслуживается через apache, это работает. Большое спасибо за Вашу помощь.
@DeusDeceit: рад, что помог :)
Давайте продолжить обсуждение в чате.
<script src = "js/jquery-3.3.1.js"></script> <script> $(document).ready( function () { $.getScript("./js/script.js"); } ); </script>