微信公众号H5页面,需要动态修改title.
常规的做法是:document.title = "the title you want to set";一直也是这么用的。
但是在IOS设备上测试的时候,一直没效果。原理是:单页面应用整个页面只有在最开始加载的时候全部刷新,后继的JS刷新一般都是局部刷新,很少能改动head里面的内容。
在网上找到办法解决。
代码如下:
var $body = $('body');
document.title = 'the title you want to set';
var $iframe = $("<iframe src='/favicon.ico'></iframe>");
$iframe.on('load',function() {
setTimeout(function() {
$iframe.off('load').remove();
}, 0);
}).appendTo($body);
原理就是加载一个看不见的iframe。由于iframe是脱离文档流的,对页面其他文档流不造成影响。亲测可用!