Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.11.2018, 16:06
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Вот структура HTML кода:
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <title>Просмотр сайтов</title>
    <meta name="robots" content="none" />
   </head>
   <frameset onLoad="javascript: frame_footer.startClock();" rows="*,70" style="border: none;">
    <frame name="frame_site" src="<?php echo $result['url']; ?>" marginwidth="0" marginheight="0" frameborder="0" />
    <frame name="frame_footer" src="/serf-fblock.php?cnt=<?php echo $_SESSION['view']['cnt']; ?>" marginwidth="0" marginheight="0" scrolling="no" noresize="noresize" frameborder="0" />
   </frameset>
  </html>
Ответить с цитированием
  #12 (permalink)  
Старый 11.11.2018, 16:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

crystaltrumpet,
более ничем помочь не могу
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<div id="blockwait">blockwait</div>
<div id="blocktimer" style="display: none">blocktimer</div>
<form name="frm" action="http://">
<input name="clock">
</form>
<script>
var mya = true, tm, vtime = 5;
function startClock() {
    clearTimeout(tm);
    if (!vtime) {
        document.getElementById('blockwait').style.display = 'none';
        document.getElementById('blocktimer').style.display = '';
    }

    if (vtime >= 0 && mya ) {
        document.forms['frm'].clock.value = vtime;
        vtime--;
        tm = setTimeout(startClock, 1000);
    }
}
startClock()
 window.onfocus = function(){ mya = true; startClock()}
 window.onblur = function(){ mya = false;}
  </script>
</body>
</html>
Ответить с цитированием
  #13 (permalink)  
Старый 11.11.2018, 17:19
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Рони, спасибо Вам большое и на этом.
Вы всегда помогаете, сколько я помню..
К сожалению я не знаю как Ваш скрипт перенести на мой сайт(
но спасибо Вам. может ктото еще знает решение ?
как переделать функцию?
Ответить с цитированием
  #14 (permalink)  
Старый 11.11.2018, 19:46
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

как вариант использовать API браузера https://developer.mozilla.org/en-US/...Visibility_API
Ответить с цитированием
  #15 (permalink)  
Старый 12.11.2018, 08:53
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Ваш вариант с API думаю имеет смысл, но как это совместить с моим таймером? чтобы когда я на странице - таймер шел, когда переключился - таймер ждал...
вот маленький код полностью рабочий! на API который я нашел:
<div class="container">
  <h1 class="title">Hey! You're here. Don't leave</h1>
</div>

var title = document.querySelector('.title');
var handleChange = function handleChange() {
  if (!document.hidden) {
    setTimeout(function () {
      document.body.classList.remove('hidden');
      title.innerText = 'But you\'re back now';
    }, 2000);
  } else {
    document.body.classList.add('hidden');
    title.innerText = 'I missed you';
  }
};

window.addEventListener('visibilitychange', handleChange);

Он работает с полоборота! Помогите совместить этот код с запуском и остановкой функции:
function startClock() {
    if (vtime == 60) {
        document.getElementById('blockwait').style.display = 'none';
        document.getElementById('blocktimer').style.display = '';
    }
    if (vtime >= 0) {
        document.forms['frm'].clock.value = vtime;
        vtime ++;
        tm = setTimeout("startClock(0)", 1000);
    } else {
        if (tm)
            clearTimeout(tm);
        nextstep(0, cnt);
    }
}

Последний раз редактировалось crystaltrumpet, 12.11.2018 в 08:55.
Ответить с цитированием
  #16 (permalink)  
Старый 12.11.2018, 09:09
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

по сути мне нужно реализовать исполнение visibilitychange но я не могу это сделать? буду благодарен за помощь.
Ответить с цитированием
  #17 (permalink)  
Старый 12.11.2018, 09:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

crystaltrumpet,

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<div id="blockwait">blockwait</div>
<div id="blocktimer" style="display: none">blocktimer</div>
<form name="frm" action="http://">
<input name="clock">
</form>
<script>
var mya = true, tm, vtime = 0;
function startClock() {
    clearTimeout(tm);
    document.forms['frm'].clock.value = vtime;
    if (vtime < 5) {
        !document.hidden && vtime++;
        tm = setTimeout(startClock, 1000);
    }
    else {
       document.getElementById('blockwait').style.display = 'none';
       document.getElementById('blocktimer').style.display = '';
    }

}
startClock()

  </script>
</body>
</html>
Ответить с цитированием
  #18 (permalink)  
Старый 12.11.2018, 09:32
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Ронни, к сожалению не работает думаю нужно попробовать реализовать на API
может вот такой функцией:
var handleChange = function handleChange() {
  if (!document.hidden) {
  } else {
  }
};

window.addEventListener('visibilitychange', handleChange);


Может поменяв название функции handleChange на startClock

Последний раз редактировалось crystaltrumpet, 12.11.2018 в 09:35.
Ответить с цитированием
  #19 (permalink)  
Старый 12.11.2018, 09:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от crystaltrumpet
не работает
может разобратся почему не работает?
Ответить с цитированием
  #20 (permalink)  
Старый 12.11.2018, 09:46
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Не работает может потому что я профан в javascript
и я не знаю как совместить Ваш код, который вы переделали с моим:
function startClock() {
    if (vtime == stattime) {
        document.getElementById('blockwait').style.display = 'none';
        document.getElementById('blocktimer').style.display = '';
    }
    if (vtime >= 0) {
        document.forms['frm'].clock.value = vtime;
        vtime ++;
        tm = setTimeout("startClock(0)", 1000);
    } else {
        if (tm)
            clearTimeout(tm);
        nextstep(0, cnt);
    }
}

хотя логично что был бы не профаном не пришел бы на форум - сам бы сделал уже и не мучал на форуме людей )

Последний раз редактировалось crystaltrumpet, 12.11.2018 в 09:49.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт работает только в Firebug photos-masters Элементы интерфейса 4 07.12.2011 19:12
Почему простейший java не работает только в Мазиле, Помогите... androlic Элементы интерфейса 4 05.07.2011 03:18
Интернет магазин работает только в IE Advokatura Internet Explorer 1 02.04.2010 12:45
Скрипт работает только в IE xstp Общие вопросы Javascript 3 13.09.2009 15:22
Спойлер работает только на один объект на странице. Shanks Общие вопросы Javascript 4 10.05.2009 14:53