如何通过函数动态更改文档标题?

时间:2015-02-08 17:29:42

标签: javascript jquery document title

我想动态更改文档的标题。

在第一个例子中,我尝试了这个片段:

var milis = 3000,
    titles = [
      'Setting up color scheme'
    ], count = 0;
    titles.push(document.title);
    setInterval(function(){
      document.title = titles[count % titles.length];
      ++count;
    }, milis);

这很有效,但我需要将片段放入一个函数中,以便随时添加标题。

该功能如下所示

function setUpTitle(){
    var milis = 3000;
    for(var i in arguments){
        titles = [
            arguments[i]
        ], count = 0;
        titles.push(document.title);
        setInterval(function(){
            document.title = titles[count % titles.length];
            ++count;
        }, milis);
    }
}

setUpTitle('one', 'two', 'three', ..., document.title);

但标题根本没有改变。

我怎么能改变它?

2 个答案:

答案 0 :(得分:1)

试试这个:

var currentTitle = document.title;

var beginSubmission = setInterval(function(){
    loaded+=1;
    bar.css('width', loaded+'%');

    document.title = loaded+'% :: ' + currentTitle;

    text.empty().append(loaded + "% completed. <br>");
    if (loaded >= 100){
        clearInterval(beginSubmission);
        text.html('Done');
        document.title = currentTitle;
    }
}, time);

这会备份您的标题并更改其上的百分比。最后,将原始标题放回页面。

另外,删除此:

        var milis = 3000,
        titles = [
            'Setting up color scheme'
        ], count = 0;
        titles.push(document.title);
        title = setInterval(function(){
            document.title = titles[count % titles.length];
            ++count;
        }, milis);

或者替换为:

document.title = 'Setting up color scheme';

答案 1 :(得分:0)

哦,你正在覆盖你的变量。试试这个:

function setUpTitle(){
    var milis = 1000;
    var titles = [document.title];
    var count = 0;
    for(var i in arguments){
        titles.push(arguments[i]);
    }
    setInterval(function(){
        document.title = titles[count % titles.length];
        ++count;
    }, milis);
}

setUpTitle('one', 'two');

http://jsfiddle.net/otow2fg8/1/