Помогите разобраться!!
Таймер не запускается при загрузке в новом окне.
Ошибка: ReferenceError: showTime is not defined timer = setInterval("showTime()",1000); код: (function(){ var wnd; var timer; function showTime(){ var time = new Date(); if(wnd && !wnd.closed && wnd.document){ wnd.document.open(); wnd.document.write("<h1>"); wnd.document.write(time.toLocaleTimeString()); wnd.document.write("</h1>"); wnd.document.close(); } } function startTimer(){ if(!timer){ var top = (screen.height-100)/2; var left = (screen.width-200)/2; var params = "width=300, height=100, top="+top+",left="+left; wnd = open('','',params); timer = setInterval("showTime()",1000); } else{ wnd.focus(); } } startTimer() }()); |
А все потому, что в setInterval нужно передавать не строку, а функцию. Если передать строку, то она будет eval'иться в глобальном контексте. А функция showTimer не глобальная, поэтому и ошибка.
Нужно так: setInterval(showTime,1000); А еще тут ошибка: wnd.document.write("<h1>"); wnd.document.write(time.toLocaleTimeString()); wnd.document.write("</h1>"); Нужно писать так: var header = "<h1>" + time.toLocaleTimeString() + '</h1'; wnd.document.write(header); На будущее - обрамляй код в [js] .. [/js] |
Спасибо супер
|
Часовой пояс GMT +3, время: 10:38. |