如何通过 js 修改微信浏览器的title

JavaScript011

如何通过 js 修改微信浏览器的title,第1张

通过 js 修改微信浏览器的title方法:可以通过以下代码来修改微信浏览器的title<title>Origin</title><title>Overwrite Origin</title><script>var sum = 0document.onclick = function(){sum ++// 获取页面上所有title标签对象数组var titles = document.getElementsByTagName("title")// 总共有多少个title标签,这两行只是用于更方便理解这段代码,没有实际意义var len = titles.length// 这一行会弹出“Overwrite Origin”,虽然它并没有被解析为本页面显示的title,但仍然是DOM树上的一个文本节点,可以被JS调用到,要修改title内容并不是修改此节点,下面一行注释会进行说明alert(titles[len - 1].innerText)// 浏览器在遇到第一个title标签后会将其内容作为title内容,忽略之后的title标签解析,所以JS需要改变第一个title标签的innerText子节点达到目的titles[0].innerText = "Title changed for " + sum + " time" + (sum <2 ? "!" : "s!")// 原先的title上显示着“Origin”,点击一次后更改为“Title changed for 1 time!”,点击两次后更改为“Title changed for 2 times!”,以此类推}</script>这段代码不仅仅是应用于微信浏览器,也应用于其他webkit内核浏览器。

title在html中属于特殊的节点元素.因为它可以使用doucment.getElementsByTagName("title")[0]来获取它的标题,但却无法用doucment.getElementsByTagName("title")[0]用更改它的值.

但是,总有解决的方法. 在javascript中,修改title的方法是:

document.title = 'xxxxxx'

在<body></body>之间的节点元素用document.getElementsByTagName()来获取或修改.documentElement代表的是<html></html>中间的所有东西.

js会使用document.title来代替网页的title的原因是,title,head,body等标签是缺省的唯一标签,所以 document.title和document.body可以直接找到结果. 而title是一个结构的标签,也就是说title内,只能加入nodetext.而不能再加别的元素.于是它的使用又具有 特殊性.为了不让代码出错.于是js中规定document.title这个对象只有一个属性(也可以说是没有属性),document.title本身就是document对象的一个属性.而不是它的一个子对象.于用document.title=""来更改title.