Please help me correct: the first time an empty window is displayed, the next is already filled. Code

<div class="b-popup" id="popup1"> <div class="b-popup-content"> <div class="inst-logo"><img class="inst-logo-img" src="http://www.kkk.com<?php echo $omg->templateUrl.'/images/logoblock.png'; ?>"></div> <div class="inst-body"> <span id="popupname"></span> </div> </div> </div> 

Script

 var quotes = new Array(); quotes[0] = "test1"; quotes[1] = "test2"; function showquote() { var q = quotes.length; var whichquote = Math.round(Math.random() * (q - 1)); document.getElementById('popupname').innerHTML = quotes[whichquote] } function PopUpShow() { setTimeout(showquote, 3000); document.getElementById('popup1').style.display = 'block'; setTimeout("document.getElementById('popup1' ).style.display = 'none'", 3000); } setInterval(PopUpShow, 5000); 

    1 answer 1

    In your code, the showquote function is showquote first time 8 seconds after the page loads.

     showquote(); setInterval(PopUpShow, 5000); 

    PS Try to explain in words - to yourself and to us - the logic of what you (or your code) are doing. The showquote function and the code that hides 'popup1' will be called almost simultaneously.

    Pps

    Use

     setTimeout(function() { document.getElementById('popup1' ).style.display = 'none'; }, 3000); 

    instead of a string with the first parameter setTimeout .