Поверните название документа с помощью JavaScript

StackOverflow https://stackoverflow.com/questions/4279308

  •  28-09-2019
  •  | 
  •  

Вопрос

Я хочу повернуть заголовок документа веб-страницы с помощью JS. Так, например:

Изменить Domain.com к New Messgae - Domain.com А затем вернуться к доменку.com и так далее, очень похоже на то, как Facebook делает это с новыми сообщениями при использовании чата.

Я смотрел в использование SetintInterval, но только за исключением одного выражения? Можно ли изменить это или использовать Setinterval неправильную функцию для использования?

        $(document).ready(function() {

            setInterval(function()
            {
                  $(document).attr('title', 'New Message — Domain.com');
            },
            2000);

        });
Это было полезно?

Решение

Прямо сейчас вы продолжаете устанавливать одно и то же новое название каждые 2 секунды, то есть вы не увидите изменения после первого изменения. Вам нужно хранить старый заголовок и чередовать двух состояний, отображение старых и новых заголовков:

var oldTitle, timerId;

function flashTitle(newTitle) {
  var state = false;
  oldTitle = document.title;  // save old title
  timerId = setInterval(flash, 2000);

  function flash() {
    // switch between old and new titles
    document.title = state ? oldTitle : newTitle;
    state = !state;
  }
}

function clearFlash() {
  clearInterval(timerId);
  document.title = oldTitle; // restore old title
}

Другие советы

$(document).ready(function() {
        var titles=['title1','title2','title3'];

        setInterval(function()
        {     
              $(document).attr('title', titles[0]);
              titles.push(titles.shift());
        },
        2000);

    });

Ну, вы можете сделать это, не используя библиотеки JavaScript, как так ...

var title = document.getElementsByTagName('title');
var msg1 = "Domain.com";
var msg2 = "New Message - Domain.com"
var current;
var titleChange;

function changeTitle(){
  if(current == msg1){
   title = msg2;
   current = msg2;
  }else{ //If the current title isn't equal to the value of msg1
   title = msg1;
   current = msg1;
  }
 titleChange = setTimeout("changeTitle()", 1000);
}

function stopChangingTitle(){
 clearTimeout(titleChange);
 title = msg1;
}

Я не могу гарантировать, что вышеуказанный код будет работать, но он должен работать!

Это то, что я придумал, используя решение докторамоль.

function changeTitle (mytitle,count) {
    console.log(title_change);
    console.log(count);
    if (count >= 1) {
        var titles = [$('title').attr('data-title'),mytitle];
        title_change = setInterval(function(){     
             $(document).attr('title', titles[0]);
            titles.push(titles.shift());
        },
        1000);


    } else {
        clearInterval(title_change);
        //clearTimeout(title_change);
        title_change = false;
    }

        return false;

}

Однако я нашел, однако, когда я заявил Site_Change вне функции, которую я не мог, по-видимому, не мог получить насильник вокруг. Когда считается, что COUNT наступит> = 1, процесс начался, но когда он возвращается как 0, ClearInterval и Clearimeout не остановит изменение_loop.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top