2010-11-25 2 views
0

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

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

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

 $(document).ready(function() { 

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

     }); 
+1

это изменит ваш заголовок на New Message & .... и после этого всегда к тому же mesage не вернется к названию по умолчанию, вы должны сохранить заголовок по умолчанию в некоторой глобальной переменной window.mytitle – Marcin 2010-11-25 16:57:09

+0

Можете ли вы показать мне, пожалуйста, , Спасибо – Cameron 2010-11-25 16:58:48

ответ

1

Прямо сейчас вы продолжаете устанавливать один и тот же новый заголовок каждые 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 
} 
1

Ну вы можете сделать это без использования 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; 
} 

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

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

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

    }); 
0

Это то, что я пришел с использованием раствора Dr.Molle в.

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; 

} 

я нашел, однако, когда я объявил title_change вне функции, которую я не мог показаться, чтобы получить setInterval прекратить езду на велосипеде вокруг. Когда count приходит, когда> = 1, процесс запускается, но когда он возвращается как 0, clearInterval и clearTimeout не останавливают change_loop.