改网页标题只有两种可靠方式:静态写在<head>里的<title>,或运行时用document.title赋值;其他操作均不保证生效,尤其影响SEO和历史记录。
改网页标题只有两种可靠方式:静态写在 <head> 里的 <title>,或运行时用 document.title 赋值。其他任何操作——比如 querySelector('title').textContent、往 <body> 里塞 <title>、用 JS 插入新 <title> 标签——都不保证生效,尤其对 SEO 和历史记录。
<title> 必须放在 <head> 里HTML 规范强制要求 <title> 是 <head> 的直接子元素。浏览器解析时若在 <body> 中遇到它,会尝试“修复”并挪动,但这个过程不可控:
<head> 内的 <title>,SEO 失效html-plugin)会覆盖模板中写的 <title>,得查最终生成的 HTML 源码确认document.title 是唯一安全的动态修改方式单页应用(SPA)路由切换后必须手动调用它,否则前进/后退时标题不会更新。注意几个关键点:
document.querySelector('title').textContent = '新标题' 不生效——<title> 是特殊节点,DOM 操作不触发浏览器标题栏更新document.title 读写,但 IE6–8 对含中文的标题有兼容问题,需确保页面声明了 <meta charset="utf-8">
document.title 修改不触发任何事件,也不影响 history.state,别指望靠监听它做响应即使位置和 API 都对了,标题内容写错照样出问题:
立即学习“前端免费学习笔记(深入)”;
&、、<code>> 会被当成 HTML 标签解析,轻则显示异常,重则破坏整个 <head> 结构;& 必须写成 &
<head> 被拆开拼接,容易漏掉或重复插入 <title>,导致只取第一个、其余被忽略<title> 可能和源码不一致——务必用 curl -s URL | grep "<title>" 或“查看网页源码”(不是 Elements 面板)验证真实输出最常被忽略的是:你本地刷新看到标题变了,不代表爬虫也看到了。首屏 HTML 源码里没有有效 <title>,SEO 就没地基可打。