86 votes

Changer le titre de la page avec Jquery

Comment faire des changements dynamiques <title> avec jquery ?

exemple : ajouter 3 > les symboles, un par un

> title
>> title
>>> title

191voto

Gazler Points 23588
$(document).prop('title', 'test');

Il s'agit simplement d'une enveloppe JQuery pour :

document.title = 'test';

Pour ajouter un > périodiquement vous pouvez faire :

function changeTitle() {
    var title = $(document).prop('title'); 
    if (title.indexOf('>>>') == -1) {
        setTimeout(changeTitle, 3000);  
        $(document).prop('title', '>'+title);
    }
}

changeTitle();

0 votes

Ne serait-il pas préférable d'utiliser setInterval et clearInterval plutôt qu'une chaîne de setTimeouts ?

1 votes

Quelles sont les implications sur le référencement en appelant la page via jQuery ?

22voto

Spycho Points 2571

Il n'est pas nécessaire d'utiliser jQuery pour modifier le titre. Essayez :

document.title = "blarg";

Ver cette question pour plus de détails.

Pour changer dynamiquement sur le clic du bouton :

$(selectorForMyButton).click(function(){
    document.title = "blarg";
});

Pour changer dynamiquement en boucle, essayez :

var counter = 0;

var titleTimerId = setInterval(function(){
    document.title = document.title + '>';
    counter++;
    if(counter == 5){
        clearInterval(titleTimerId);
    }
}, 100);

Pour enchaîner les deux afin qu'ils changent dynamiquement au clic du bouton, dans une boucle :

var counter = 0;

$(selectorForMyButton).click(function(){
  titleTimerId = setInterval(function(){
    document.title = document.title + '>';
    counter++;
    if(counter == 5){
        clearInterval(titleTimerId);
    }
  }, 100);
});

0 votes

Lorsque l'utilisateur clique sur le bouton, le titre sera modifié comme dans la question, et cette modification sera mise en boucle.

4voto

gowri Points 4775

En utilisant

$('title').html("new title");

0 votes

Je sais, mais comment le faire dynamiquement ?

2 votes

Eh bien, c'est dynamique, c'est-à-dire avec Javascript. Voulez-vous dire par hasard "animé" ?

0 votes

@IIya : donnez plus de balisage et de code pour une meilleure réponse. vos questions ne sont pas claires.

1voto

etuardu Points 1720

Du code pour parcourir une liste de titres (circulaire ou one-shot) :

    var titles = [
            " title",
            "> title",
            ">> title",
            ">>> title"
    ];

    // option 1:
    function titleAniCircular(i) {
            // from first to last title and back again, forever
            i = (!i) ? 0 : (i*1+1) % titles.length;
            $('title').html(titles[i]);
            setTimeout(titleAniCircular, 1000, [i]);
    };

    // option 2:
    function titleAniSequence(i) {
            // from first to last title and stop
            i = (!i) ? 0 : (i*1+1);
            $('title').html(titles[i]);
            if (i<titles.length-1) setTimeout(titleAniSequence, 1000, [i]);
    };

    // then call them when you like.
    // e.g. to call one on document load, uncomment one of the rows below:

    //$(document).load( titleAniCircular() );
    //$(document).load( titleAniSequence() );

-1voto

aaronfrost Points 4700
document.getElementById('mybutton').onclick = function(){
    document.title= "WHATEVER YOU WANT TO PUT HERE";
}

C'est comme ça qu'il faut faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X