Javascript 在一定时间后更改页面标题

Javascript 在一定时间后更改页面标题,javascript,html,Javascript,Html,我试图在2秒(2000毫秒)后动态更改页面标题 以下是我尝试过的代码: <!DOCTYPE HTML> <html> <head> <title>Before</title> </head> <body onload="updateTitle"> <script> var title = document.getElementsByTagName('title'); function updateTi

我试图在2秒(2000毫秒)后动态更改页面标题

以下是我尝试过的代码:

<!DOCTYPE HTML>
<html>
<head>
<title>Before</title>
</head>
<body onload="updateTitle">
<script>
var title = document.getElementsByTagName('title');
function updateTitle() {
//Here is some kind of delay (of 2 seconds). I have tried setTimeout(), setInterval() and delay()
title.innerHTML = "After";
</script>
Dummy Content for Body
</body>
</html>

之前
var title=document.getElementsByTagName('title');
函数updateTitle(){
//这里是某种延迟(2秒)。我尝试过setTimeout()、setInterval()和delay()
title.innerHTML=“After”;
主体的虚拟内容

如何修改它,使页面标题在2秒钟后更改?

要更改标题,您应该使用
窗口。title

window.title = 'After';
在这种情况下,您绝对必须使用
document.getElementsByTagName
,请注意,它返回一个元素数组,您需要使用其中的第一个元素

document.getElementsByTagName('title')[0].innerHTML = 'After';
当然,如果页面没有
元素,则上述操作将导致错误。第一个(
窗口。警报
)将在任何情况下工作


延迟

为了引入延迟,您可以使用
setTimeout
(正如您已经做的那样)


它似乎不起作用。



设置超时(函数updateTitle(){

`window.title='After';


标签应该是
。注意
updateTitle
之后的
()
,我忘了这一点。”[12:35:29.564]未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将以乱码文本呈现。页面的字符编码必须在文档或传输协议中声明。“和”[12:35:29.582]ReferenceError:updateTitle未定义“将
块移动到
中。问题是,当浏览器尝试绑定函数
updateTitle()
时(在解析页面时),尚未定义该函数,因为它是在正文内部定义的。
<script>
function updateTitle() {
    setTimeout(function() {
        window.title = 'After';
    }, 2000);
}
</script>
<!DOCTYPE html>
<html>
<head>
<title>Before</title>
<script>
function updateTitle() {
    setTimeout(function() {
        document.getElementsByTagName('title')[0].innerHTML = 'After';
    }, 2000);
}
</script>
</head>
<body onload="updateTitle()">
Dummy Content for Body
</body>
</html>