My name is Vasyl Khrystiuk‎ > ‎pub‎ > ‎JavaScript‎ > ‎

отложенный Document.write

Tags: javascript_tag,

А вот собственно мой вариант:

1 <html> 2 <body> 3 <script> 4 (function(){ 5 var idunique321321 = 'idunique321321'+(new Date()-0); 6 var counter = 0; 7 var index = []; 8 9 document.__write = document.write; 10 document.write = function (data){ 11 index[counter] = data; 12 document.__write('<div id="'+idunique321321+(counter++)+'"></div>'); 13 } 14 15 document.writeEnd = function (){ 16 for (var i = 0 ;i<counter;i++){ 17 document.getElementById(idunique321321+i).outerHTML = index[i]; 18 } 19 index = []; 20 } 21 })(); 22 document.write('123123'); 23 document.write('<br/>'); 24 document.write('test же ну'); 25 setTimeout(document.writeEnd,3000); 26 </script> 27 </body> 28 </html> 29 </html>


 //TODO: Очевидно что нет проверок на тип входящих данных(а они должны быть строками), т.е. чтоб использовать этот код на практике - лучше добавить эти проверки

// UPD: document.write('<script>alert(1)</script>'); - не работает, и это явный недостаток, или преимущество


А вот здесь написано что это и зачем нужно: http://webo.in/articles/habrahabr/61-counters-optimization/ и даже дается свой пример. 


Comments