楼主在开发过程中发现了在IOS微信里修改document.title不起作用,需要刷新才能起作用。
查了一下,微信浏览器的title在页面加载完成后就确定了也就是微信浏览器首次加载页面初始化title后,就再也不监听 document.title的change事件,因此只使用document.title来修改,不会有效果。
解决办法:修改了title后,立即创建一个请求,加载一个空的iframe,由于加载后立即就移除,也不会对页面造成影响,但这样微信浏览器上的title便刷新了。
<code> var $body = $('body');
document.title = 'the title you want to set';
var $iframe = $("<iframe style='display:none;' src='/favicon.ico'></iframe>");
$iframe.on('load',function() {
setTimeout(function() {
$iframe.off('load').remove();
}, 0);
}).appendTo($body);</code>
display:none这个设置使iframe脱离文本流,那么加载和删除这个iframe都不会改变文本流,也不会触发页面渲染,性能会好一些。
网友评论