Может ли кто-нибудь объяснить, почему этот document.write перезаписывает всю страницу?

Вот код; JavaScript

function Roll()
     // Results: displays a randomly selected image of a 6-sided die
     {
       var roll;

       roll = RandomInt(1, 6);

       if (roll == 1) {
         document.getElementById("die").src = 
             "die1.gif";
         document.write("<center><p><a href='bad.html'> Enter </a></p></center>");
       }
       else if (roll == 2) {
         document.getElementById("die").src = 
             "die2.gif";
         document.write("<center><p><a href='good.html'> Enter </a></p></center>");
       }
       else if (roll == 3) {
         document.getElementById("die").src = 
             "die3.gif";
         document.write("<center><p><a href='bad.html'> Enter </a></p></center>");
       }
       else if (roll == 4) {
         document.getElementById("die").src = 
             "die4.gif";
         document.write("<center><p><a href='good.html'> Enter </a></p></center>");
       }
       else if (roll == 5) {
         document.getElementById("die").src = 
             "die5.gif";
         document.write("<center><p><a href='bad.html'> Enter </a></p></center>");
       }
       else {
         document.getElementById("die").src = 
             "die6.gif";
         document.write("<center><p><a href='good.html'> Enter </a></p></center>");
       }
     }

А вот Jsfiddle http://jsfiddle.net/seymorevenue/TcNF7/ (хотя document.write похоже, там не работает, и изображения игральных костей не появляются) Я не думаю, что действительно понимаю оператор Document.write, и есть ли лучший метод? Все, что я хочу сделать, это бросить кубик и отобразить ссылку на основе результата. Спасибо за любую помощь


person user2034276    schedule 18.04.2013    source источник
comment
См. здесь: developer.mozilla.org/en-US/docs/Web/API/   -  person Mike Cheel    schedule 11.12.2013
comment
Возможный дубликат document.write() перезаписывает документ?   -  person Quentin    schedule 09.04.2018


Ответы (1)


Я думаю, что document.write() вносит существенные изменения в веб-сайт и редко используется после нажатия кнопки, а скорее при загрузке сайта.

Вместо этого используйте что-то вроде этого:

document.getElementByID('YourOutputDiv').innerHTML = 'Text to display on website';
person Momro    schedule 18.04.2013
comment
Спасибо, Момро, это сработало (как только я убрал заглавную букву D в getElementById). Это имеет больше смысла, и я воздержусь от того, чтобы разбивать свои страницы бесполезными операторами document.write. Очень признателен - person user2034276; 19.04.2013