Я получаю «функция не определена», когда перемещаю функцию Javascript из встроенного кода в отдельный файл js - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь заставить работать очень простую вещь:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<script src="js/test.js" type="text/js"></script>
<button onclick="test()" type="submit">Test</button>
</body>
</html>

С js / test. js обнаруживается браузером и содержит:

function test() {
    alert("test");
}

при открытии страницу и нажав кнопку, ничего не происходит, и я вижу в консоли:

Uncaught ReferenceError: test is not defined
    at HTMLButtonElement.onclick (test:7)

Я попытался переместить импорт скрипта выше или ниже кнопки или в заголовке. Я пробовал использовать "window.setlocale = function" в моем js файле. Я пробовал ничего не вкладывать в метод тестирования. Я проверил наличие ошибок с помощью JSLint (ошибок нет).

Когда я проверяю источник, я вижу файл js, и браузер открывает его, когда я нажимаю на него.

Единственный способ заставить Javascript работать - это написать его встроенным ...

Может быть, проблема в моей среде?

Чтобы запустить это, я использую Apache, и он настроен для обслуживания этого сервера на localhost: 8077. Работаю пока нормально. Я использую Laravel 7.10, PHP 7.4 ... работает нормально. Чтобы запустить это, я создал простой маршрут, который показывает представление (простой index.blade. php) с копией / вставкой содержимого HTML выше. Он отлично отображает «http://localhost: 8077 / test », без проблем.

Я также пытался использовать laravel нотацию

<script src="{{ asset('js/test.js') }}" type="text/js"></script>

, но это дает тот же результат.

У меня также активна PHP панель отладки (плагин Laravel), и она не показывает никаких ошибок. Представление правильно загружено и отображается.

Кроме того, я использую PHPStorm, и он не обнаруживает никаких проблем.

Прошло 2 дня, и я не могу сделать эту, казалось бы, чрезвычайно базовую c вещь поработать, помогите пожалуйста m (_ _) m

Ответы [ 4 ]

0 голосов
/ 27 мая 2020

Ваш тип скрипта неверен. Используйте application/javascript в своем элементе script, чтобы ваш javascript работал - или еще лучше удалите атрибут type и позвольте браузерам автоматически определять тип:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <script src="js/test.js" type="application/javascript"></script>
    <button onclick="test()" type="submit">Test</button>
</body>
</html>

Без type атрибут:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <script src="js/test.js"></script>
    <button onclick="test()" type="submit">Test</button>
</body>
</html>
0 голосов
/ 27 мая 2020

Попробуйте удалить имя функции в js / test. js

function() {
    alert("test");
}
0 голосов
/ 27 мая 2020

Добавьте файл js в качестве ссылки в раздел заголовка вашего основного файла. Внешнее реферирование.

0 голосов
/ 27 мая 2020

вы можете попробовать добавить тег скрипта в тег заголовка. вот так

<head> <script type="text/javascript" src="path/to/script.js"></script> <!--other script and also external css included over here--> </head>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...