Чтобы определить глобальную переменную, основанную на элементе DOM, необходимо проверить несколько вещей. Во-первых, если код находится в разделе <head>
, DOM не будет загружен при выполнении. В этом случае обработчик события должен быть размещен для установки переменной после загрузки DOM, например:
var systemStatus;
window.onload = function(){ systemStatus = document.getElementById("system_status"); };
Однако, если этот скрипт встроен в страницу при загрузке DOM, то это можно сделать, если соответствующий элемент DOM загружен выше места расположения скрипта. Это потому, что JavaScript выполняется синхронно. Это будет действительно:
<div id="system_status"></div>
<script type="text/javascript">
var systemStatus = document.getElementById("system_status");
</script>
В результате последнего примера большинство страниц, на которых выполняются сценарии в теле, сохраняют их до самого конца документа. Это позволит загрузить страницу, а затем выполнить javascript, что в большинстве случаев визуально ускоряет визуализацию DOM.