HTML title标签内注释导致document.title获取异常问题咨询
问题解析与解决方案
这是个典型的HTML解析细节问题,我来帮你理清楚为什么会出现这种情况:
为什么document.title输出的是注释内容?
HTML里的<title>元素属于**可解析字符数据(PCDATA)**类型的元素,浏览器在处理它的内容时,不会忽略内部的注释——它会把注释的文本内容直接当作标题文本的一部分。你代码里的注释写在了<title>标签内部,所以document.title会把注释和后面的标题文本一并返回,看起来像是只输出了注释内容(如果注释在前且占了主要显示部分的话)。
正确的写法
要避免这个问题,你需要把关于title的注释移到<title>标签外面,比如:
<!DOCTYPE html> <html> <!-- This starts the html file --> <head> <!-- This is the head --> <!-- This states the title for the webpage --> <title>Website's title</title> </head> </html>
对应的JavaScript代码保持不变:
console.log(document.title)
这样再运行代码,console.log(document.title)就会输出你预期的Website's title了。
另外补充一点:<title>元素的设计就是用来存放纯文本标题的,内部不适合添加注释,所有对title的说明性注释都应该放在标签外部,这样既不影响功能,也能保证代码的可读性。
内容的提问来源于stack exchange,提问作者Javier
相关产品推荐
相关产品推荐

