Почти доделал скрипт автообновления. Нужна помощь.
Вложений: 3
Привет всем. Строго не судите, я новичок в JS и это первый скрипт мой, работал давно с PHP и HTML. Возник ряд вопросов, один из них главный - это как заставить скрипт работать автономно после ввода секунд? Пробывал применять sessionStorage, но что-то не выходит. Работает как разовый таймер.
Второй вопрос, как сделать стоп таймера, ну и третий не очень важный пауза по нажатию на таймер. Вот собственно 5кб кода: // ==UserScript== // @name Autorefresh // @author Dyec // @version 1.0 // @date 2018-01-19 // ==/UserScript== if(!self.parent.frames.length) { var sec = "5"; // секунд function askSeconds() { var age = prompt('Время в секундах (2-180):', sec); if(!age) { callback(); //alert('Пустое значение!'); } else if(age < 2) { alert('Слишком мало! Минимум 2 секунды!'); } else if(age > 180) { alert('Слишком много! Максимум 180 секунд!'); } else { var second = age; var ag = '1'; } if(ag='1') { function traySec() { if(second<=9) { second='0' + second; } if(document.getElementById) { timer.innerHTML=second; } if(second==00) { return false; } second--; setTimeout(traySec, 1000); } function trayInfo() { var d = document; var e = d.createElement('button'); e.style.cssText = 'font-size: 10pt; position: fixed; top: 135px; left: 0px; height: 32px; width: 38px; background: #e3e8e1; border-radius: 0 4px 4px 0; border: 1px solid gray; z-index: 9999; opacity: 0.9; filter:alpha(opacity=90);'; d.documentElement.appendChild(e); e.innerHTML = '<big><big><b><font color="black"><span id="timer"></span></color></b></big></big>'; e.onclick = function() { //пауза traySec } } trayInfo(); traySec(); function refresh() { location.reload(); } setInterval(refresh, age*1000); } }//закрытие askSecond function autorefresh() { var d = document; var e = d.createElement('button'); e.style.cssText = 'font-size: 10pt; position: fixed; top: 100px; left: 0px; height: 32px; width: 38px; background: #e3e8e1; border-radius: 0 4px 4px 0; border: 1px solid gray; z-index: 9999; opacity: 0.9; filter:alpha(opacity=90);'; d.documentElement.appendChild(e); e.innerHTML = '<big><big><b><font color="black">↻</color></b></big></big>'; e.onclick = function() { askSeconds(); stopautorefresh(); } } autorefresh(); function stopautorefresh() { var d = document; var e = d.createElement('button'); e.style.cssText = 'font-size: 10pt; position: fixed; top: 100px; left: 0px; height: 32px; width: 38px; background: #e3e8e1; border-radius: 0 4px 4px 0; border: 1px solid gray; z-index: 9999; opacity: 0.9; filter:alpha(opacity=90);'; d.documentElement.appendChild(e); e.innerHTML = '<big><big><b><font color="black">X</color></b></big></big>'; e.onclick = function() { //stop } } А вот и скрины как это выглядит! Правда на некоторых сайтах кнопка стоит на месте и не прыгает вместе с прокруткой. |
61 просмотр и тишина. Вымер форум чтоли?:(
|
сократил код:
if(!self.parent.frames.length) { var d = document; var e = d.createElement('button'); var setCss = 'font-size: 10pt; position: fixed; left: 0px; height: 32px; width: 38px; background: #e3e8e1; border-radius: 0 4px 4px 0; border: 1px solid gray; z-index: 9999; opacity: 0.9; filter:alpha(opacity=90); '; var blackA = '<big><big><b><font color="black">'; var stopX = '✖'; var refO = '↻'; var blackB = '</color></b></big></big>'; var sec = "5"; // секунд function askSeconds() { var age = prompt('Время в секундах (2-180):', sec); if(!age) { callback(); //alert('Пустое значение!'); } else if(age < 2) { alert('Слишком мало! Минимум 2 секунды!'); } else if(age > 180) { alert('Слишком много! Максимум 180 секунд!'); } else { var second = age; var ag = '1'; } if(ag='1') { function traySec() { if(second<=9) { second='0' + second; } if(document.getElementById) { timer.innerHTML=second; } if(second==00) { return false; } second--; setTimeout(traySec, 1000); } function trayInfo() { var e = d.createElement('button'); e.style.cssText = setCss+'top: 135px;'; d.documentElement.appendChild(e); e.innerHTML = blackA+'<span id="timer"></span>'+blackB; e.onclick = function() { //пауза traySec } } trayInfo(); traySec(); function refresh() { location.reload(); } setInterval(refresh, age*1000); } }//закрытие askSecond function autorefresh() { e.style.cssText = setCss+'top: 100px;'; d.documentElement.appendChild(e); e.innerHTML = blackA+refO+blackB; e.onclick = function() { askSeconds(); stopautorefresh(); } } autorefresh(); function stopautorefresh() { e.style.cssText = setCss+'top: 100px;'; d.documentElement.appendChild(e); e.innerHTML = blackA+stopX+blackB; e.onclick = function() { //stop } } } |
Часовой пояс GMT +3, время: 21:40. |