3

titlehtml中属于特殊的节点元素.因为它可以使用document.getElementsByTagName("title")[0]来获取网页的title标签,但却无法用document.getElementsByTagName("title")[0].innerHtml用更改它的值。经测试原生js有两种方式可以修改,jQuery中也能简单设置。不清楚的小伙伴们可以了解一下。

innerText 方式

通过console.log(document.getElementsByTagName("title")[0]),发现能打印出<title>标签,标签里面只有文字节点,故猜测只能识别TextNode,所以用innerText方式设置title的值,果然成功了。

document.getElementsByTagName("title")[0].innerText = '需要设置的值';

document.title方式

经过测试,还可通过document.title 设置title的值。

console.log(document.title);           # 可以获取title的值。
document.title = '需要设置的值';        # 设置title的值。

举个栗子:

window.onfocus = function () {
  document.title = '恢复正常了...';
};
window.onblur = function () {
  document.title = '快回来~页面崩溃了';
};

我们在浏览器取得了焦点和失去焦点的时候改变title的值,可以发现切换浏览器选项卡的时候,title发生了改变。

jQuery方式

当然如果你的项目里面依赖jQuery,可以使用jq的方法设置

$('title').html('')

$('title').text('')

jq中两种方式都可以实现


总结

原生js中我们可以通过 innerText , document.title 两种方式动态修改网页的title .
jq中我们可以通过 $('title').html('') 或者 $('title').text('') 进行修改。


ZHAO_
454 声望11 粉丝

前端开发