Показать сообщение отдельно
  #1 (permalink)  
Старый 29.01.2018, 09:57
Аспирант
Отправить личное сообщение для Dyec Посмотреть профиль Найти все сообщения от Dyec
 
Регистрация: 09.01.2018
Сообщений: 32

Сделал функцию автообновления под Opera Mobile. Есть вопрос
Всем привет. Вообщем, с трудом, но доделал эту функцию, которой нет в Opera Mobile(см. скриншоты и код ниже). Буду рад любой критике. Вот один вопрос:

На одном сайте не работают <big> и жирность. На втором сайте, не работает функция увеличенного масштаба встроенная в браузер, из-за этого кнопка по размерам меньше. На третьем сайте зайдя в один раздел
кнопки нет. Я так понял это из-за настройки стиля css на сайтах, ведь кнопка внедряется туда вроде или нет?
В браузере есть свой style.css, так вот как его подключить, чтобы на кнопку не влияли стили сайтов и масштаб? Если возможно такое.

Только начал изучать JS, строго не судите. Как его внедрить в браузер, смотрите в гугле.

Вот собственно сам скрипт:
if(!self.parent.frames.length) {
  
  var d = document;
  var e = d.createElement('button');
  var setCss = 'font-size: 27px; position: fixed; left: 0px; height: 48px; width: 57px; background: #e3e8e1; color: #3F3F3F; font-weight: 900; border-radius: 0 6px 6px 0; border: 1px solid gray; z-index: 9999; opacity: 0.9; filter:alpha(opacity=90); ';
  var stopX = '✖';
  var startO = '↻';
  var sec;
  var refreshId;
  var delinfo;

  function reloads() { 
  location.reload();
  }

  function timerInfo() {
  var e = d.createElement('button');
  e.style.cssText = setCss+'top: 150px;';
  d.documentElement.appendChild(e);
  delinfo = e;
  e.innerHTML = '<span id="timer"></span>';
  e.onclick = function() {
  callback();
  //пауза
     }
   }

  function timerSec() {

  if(sec<=9) {
  sec='0' + sec; }

  if(document.getElementById) {
  timer.innerHTML=sec; }

  if(sec==00) {
  reloads();
  return false; }

  sec--;

  refreshId = setTimeout(timerSec, 1000);
 }

  function askSeconds() {
  var ask = prompt('Интервал в секундах (2-960):', 5);

  if(!ask || isNaN(ask)) {
  callback();
  } 
else if(ask < 2) {
  alert('Минимум 2 секунды!');
  callback();
  }
else if(ask > 960) {
  alert('Максимум 960 секунд!');
  callback();
  } else {
  sessionStorage.setItem('key', ask);
  sec = ask;
  timerInfo();
  timerSec(sec);
    }
  }

  function startrefresh() {
  e.style.cssText = setCss+'top: 100px;';
  d.documentElement.appendChild(e);
  e.innerHTML = startO;
  e.onclick = function() {
  askSeconds();
 stopautorefresh();
    }
  }

  function stopautorefresh() {
  e.style.cssText = setCss+'top: 100px;';
  d.documentElement.appendChild(e);
  e.innerHTML = stopX;
 e.onclick = function() {

  sessionStorage.clear();
  clearTimeout(refreshId);
  delinfo.outerHTML = '';
  return startrefresh();
    }
  }

  if(sessionStorage.getItem('key')) {
  sec = sessionStorage.getItem('key');
  stopautorefresh();
  timerInfo();
  timerSec(sec);
  } else {
  startrefresh();
   }
}


Кнопка всегда слева в фиксированном месте экрана и доступна в любой части страницы.
Может кому пригодится.
Спасибо всем!
Изображения:
Тип файла: jpg shot_625_2018_01_31.jpg (14.4 Кб, 2 просмотров)
Тип файла: jpg shot_626_2018_01_31.jpg (10.8 Кб, 1 просмотров)
Тип файла: jpg shot_627_2018_01_31.jpg (11.5 Кб, 1 просмотров)

Последний раз редактировалось Dyec, 02.02.2018 в 14:55. Причина: Решил пару проблем. Поправил отступы в коде. Перезалил скрины. Решил проблему с убиранием trayInfo().
Ответить с цитированием