Включение внешнего js-файла и вызов функции внутри внешнего js-файла не работают с одним и тем же тегом скрипта - PullRequest
0 голосов
/ 14 июня 2019

Почему необходимо сначала включить внешний файл js, а затем вызвать любую функцию с новыми тегами скрипта?

Я тестирую с кодом:

test.html

<html>
<head>
</head>
<body>
    <script src=test.js>test();</script>
</body>
</html>

test.js

function test(){
    alert(1);
}

Не отображается всплывающее окно с предупреждением.

Но когда я включаю test.js отдельно или в теле или голове с кодом:

test.html

<html>
<head>
</head>
<body>
    <script src=test.js></script>
    <script>test();</script>
</body>
</html>

Это действительно показывает всплывающее окно.Это как-то связано с анализатором HTML?Я даже не получаю ReferenceError, отображаемую в консоли браузера, поэтому у test есть ссылка, но она не выполняется.

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

это происходит потому, что когда вы указали атрибут src, вы сказали браузеру не искать javascript внутри этого тега, а вместо внешнего

0 голосов
/ 14 июня 2019

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

Например, если a.js имел ...

var a = function() {
   alert('a');
}

... а у b.js было ...

a()

... тогда вы не захотите включать b.js до того, как a.js или a () не будут доступны.

Для выше,

<script src=test.js></script>
<script>test();</script>

снова это так же: сначала включите файл, затем запустите его содержимое.

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