使用javascript更改页面标题

使用javascript更改页面标题,javascript,ajax,Javascript,Ajax,title.php function changeTitle(title) { document.title = title; } function result() { var fetchTitle; fetchTitle = new ActiveXObject("Microsoft.XMLHTTP"); fetchTitle.open("GET", "title.php", true); fetchTitle.send(null); } setInte

title.php

function changeTitle(title) 
{ 
document.title = title;
}

function result()
{
    var fetchTitle;
    fetchTitle = new ActiveXObject("Microsoft.XMLHTTP");
    fetchTitle.open("GET", "title.php", true);
    fetchTitle.send(null);
}

setInterval('changeTitle(result())', 1000);//check every second for update

它似乎没有改变标题。为了显示
title.php
,我是否遗漏了什么

多谢各位

我错过什么了吗

很多事情

  • changeTitle函数希望传递一个参数(字符串),您总是向它传递
    result
    的返回值,该返回值将始终是
    undefined
    ,因为
    result
    没有
    return
    语句
  • 您正在使用IE6/7ActiveX方法来实现Ajax,而不是现代的、标准的、跨浏览器兼容的方法
  • 您没有分配
    onReadyStateChange
    事件处理程序,因此您对从XMLHttpRequest对象返回的数据不做任何处理
  • 您正在发出一个异步请求,但您的方法似乎是基于同步请求的,因此也会因此失败(请注意,同步请求会锁定页面,应该避免)

  • 我建议读一下这里有几个问题。首先,您应该使用更健壮的AJAX实现。我建议使用JQuery之类的库,而不是像那样尝试滚动您自己的实现,以使您的脚本在尽可能多的浏览器中可靠且一致


    其次,您的结果函数从未实际返回响应中的值,因此您的changeTitle函数从未收到任何实际数据。

    请尝试不要在
    setInterval
    中使用字符串(它使用
    eval
    ),传递函数<代码>设置间隔(函数(){changeTitle(result());},1000)
    <?php echo "This is a new title"; ?>