Невозможно получить объявленные переменные в JavaScript - PullRequest
0 голосов
/ 13 июля 2010

Рассмотрим файл javascript script.js, который содержит код alert(theVar);

Теперь я связал файл js с документом как

<script type="text/javascript">
    var theVar= 'a alert';
</script>
<script type="text/javascript" src="script.js"></script> //Contains alert(theVar);

Используется переменная theVarи я получаю предупреждение.Это работает нормально.

Когда используется

<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
     var theVar= 'a alert';
 </script>

, я не получаю предупреждение.

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

Но есть ли способ получить переменную, объявленную где-либо в документе?

Ответы [ 3 ]

6 голосов
/ 13 июля 2010

in script.js do

window.onload = function() { alert ( theVar ) }

Или ваша любимая библиотека, готовая fn, поэтому она вызывает обратный вызов после определенного события, а не сразу.

Хотя это действительно зависит откакие функции script.js имеет, что вы не указали до сих пор.

1 голос
/ 13 июля 2010

Важным битом является то, что код выполняется в соответствующем порядке. Вы должны отложить вызов до alert(theVar) до полной загрузки документа. Например, вы можете прикрепить обработчик событий onload к объекту window.

Стоит также отметить, что вызов внешних файлов * .js не влияет на способ запуска кода.

0 голосов
/ 13 июля 2010

Простое решение:

Переместить включение script.js в последний ряд body. Таким образом можно использовать переменную, объявленную в любой точке документа.

Техническое решение:

Внутри script.js, подключитесь к событию window.onload перед выполнением любой оценки. Результат такой же, как и в более простом решении, но позволяет вам держать теги сценария в голове (или где угодно)

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