Так... из-за чего JS может не выполнить строку? Из-за того, что где-то ранее скрипт был остановлен. Когда скрипт останавливается? При попытке обращения к свойству несуществующего объекта. То есть, либо у тебя нету объекта с ID name, либо он есть, но у него нету второго дочернего элемента, у которого ты пытаешься получить innerHTML (не забываем, что arr[1] - это не первый элемент массива, а второй, так как отсчет идет с нуля). Если та же строка работает в том же документе из адресной строки... вот не знаю. Скорее всего, где-то допущена какая-нибудь незначительная ошибка - кавычки поставлены не так, точка с запятой пропущена, лишняя точка с запятой вставлена. Хорошо бы увидеть полный код страницы - тогда сразу можно будет сказать, где что не так.
<html>
<head>
<script>
window.onload = function(){
//setTimeout(function(){location.reload()}, 5000);
var name = document.getElementById('name').getElementsByTagName('*')[1].innerHTML;
alert(name);
}
</script>
</head>
<body>
<div id="name">
<span>Текст1</span>
<span>Текст2</span>
</div>
</body>
</html>