Я немного озадачен отличными результатами, полученными от this Fiddle и Visual Studio 2012. Как видно на скрипке, на выходе отображается «Ninja» и «Forever !». Однако, не следует ли мне также видеть «власть!» как часть выхода?Тот же код, разные результаты в Fiddle vs. VS
Вот фрагмент кода VS в целом: «власть»
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Suite</title>
<script type="text/script">
function assert(value, desc) {
var li = document.createElement("li");
li.className = value ? "pass" : "fail";
li.appendChild(document.createTextNode(desc));
document.getElementById("results").appendChild(li);
}
window.onload = function() { assert(true, 'power!'); };
var ninja = {
shout: function() {
assert(true, 'Ninja');
}
};
ninja.shout();
setTimeout(
function() { assert(true, 'Forever!'); },
500);
</script>
<style>
#results li.pass {
color: green;
}
#results li.fail {
color: red;
}
</style>
</head>
<body>
<ul id="results"></ul>
</body>
</html>
Когда я запускаю приведенный выше код я вижу ТОЛЬКО быть распечатаны, но потом я бегу в следующее сообщение об ошибке:
Unable to get property 'appendChild' of undefined or null reference
И ошибка указывает на последней строке функции assert
. Теперь я знаю, что означает ошибка. Я просто не понимаю, почему возникает ошибка.
Насколько я могу судить, я имею дело с двумя семантически идентичными наборами кода. Или я? Я пытаюсь выяснить, 1) почему я не вижу «власти!». вывода в моей скрипке и 2) почему мой код VS производит другой результат, и 3) почему два результата отличаются по одному и тому же коду.
Это потому, что на jsFiddle у вас есть опция 'onLoad' для кода javascript, а это означает, что ваш код уже выполняется после загрузки документа. Если вы попытаетесь изменить это значение на 'onDoamready', вы также должны получить значение ** power! **. Хотя для версии VS я предполагаю, что он пытается выполнить ваш код, прежде чем правильно загрузить весь документ, что приведет к ошибке. Попробуйте поместить весь код внутри вашей функции window.onload. – Dim13i