Это категорический отказ от ответа: устранение заманчивого, но неправильного ответа, чтобы помочь другим найти правильные ответы.
Может показаться, что отладка высветит проблему. Однако единственный браузер, в котором возникает проблема, - это IE, а в IE вы можете отлаживать только тот код, который был частью исходного документа. Для динамически добавляемого кода отладчик просто отображает элемент body в качестве текущей инструкции, а IE утверждает, что ошибка произошла с огромным номером строки.
Вот пример веб-страницы, которая продемонстрирует эту проблему в IE:
<html>
<head>
<title>javascript debug test</title>
</head>
<body onload="attachScript();">
<script type="text/javascript">
function attachScript() {
var s = document.createElement("script");
s.setAttribute("type", "text/javascript");
document.body.appendChild(s);
s.text = "var a = document.getElementById('nonexistent'); alert(a.tagName);"
}
</script>
</body>
Это дало мне следующую ошибку:
Line: 54654408
Error: Object required