Я полагаю, что причина, по которой вы можете получить:
попытка запустить скрипт compile-and-go в очищенной области
в Firebug, связана с использованиемdocument.write()
после загрузки страницы.Это также представляется новой ошибкой Firebug JS.
После первоначального запуска вы пишете в документ после того, как вам это разрешено.Я попытался использовать document.open()
и document.close()
, и добавление обоих не решило проблему.
Хотя есть и лучшие способы.Вы можете использовать это для замены body
содержимого:
document.body.innerHTML = n + '<br/>;
Или это, чтобы добавить к нему:
document.body.innerHTML += n + '<br/>;
Или это (что я бы порекомендовал):
var div = document.createElement('div');
div.innerHTML = n + '<br/>';
document.body.appendChild(div);
Обратите внимание, не используйте setTimeout('help(n)',##)
, так как это eval()
код для вызова функции, что является плохой практикой.Также избегайте второго примера, приведенного выше, поскольку в некоторых браузерах могут возникать проблемы с производительностью из-за способа, которым .innerHTML
добавляется к узлу.Следовательно, это еще одна плохая практика, которую следует избегать.
Далее следует демонстрация третьего метода.
function help(n){
var div = document.createElement('div');
div.innerHTML = n + '<br/>';
document.body.appendChild(div);
if (n == 10) {
n = 1;
}
n++;
main(n);
}
function main(n){
setTimeout(function(){
help(n);
}, 500);
}
main(5);
http://jsfiddle.net/be6He/1