JS动态修改微信浏览器中的title

平时使用JS修改title,直接document.title=新标题就好了
这样在安卓的微信浏览器是正常运行,可在IOS中这样的确不起作用。
这是因为微信浏览器的title在页面加载完成后就确定了,因此如果光使用document.title来修改,不会有效果。
所以这里使用了黑科技。

我们的原理是设置一个ifame然后我们再加载一下就可以实现了.

在微信浏览器中使用如下代码来动态修改浏览器上的title标题:

1
2
3
4
5
6
7
8
var $body = $('body');
document.title = '这里是要修改成的新标题';
var $iframe = $('<iframe src="/favicon.ico"></iframe>');
$iframe.on('load',function() {
setTimeout(function() {
$iframe.off('load').remove();
}, 0);
}).appendTo($body);

由于微信浏览器只在页面首次加载时初始化了标题title,之后就没有再监听 window.title 的change事件。所以这里修改了title后,立即创建一个请求,加载一个空的iframe,由于加载后立即就移除,也不会对页面造成影响,但这样微信浏览器上的title便刷新了。