【安卓】怎么修改ios上微信浏览器title标签
问题1:我现在找到的解决办法是
xxx.setDocumentTitle = function(title) {document.title = title;
if (/ip(hone|od|ad)/i.test(navigator.userAgent)) {
var i = document.createElement('iframe');
i.src = '/favicon.ico';
i.style.display = 'none';
i.onload = function() {
setTimeout(function(){
i.remove();
}, 9)
}
document.body.appendChild(i);
}
}
这种方法我看不懂,求解释
问题2:为什么会出现这种情况?安卓端的微信浏览器可以用dom修改title,同样代码在ios端为啥没效果?
回答
直接change函数中 document.title = "xxx"
赋值,
你找的代码/ip(hone|od|ad)/i.test(navigator.userAgent)
判断是ios设备(正则判断navigator.userAgent)
至于为什么
创建一个iframe, 去改, 坐等神评.
webview中包括微信的浏览器IOS设备是无法通过document.title来更改标题的
给你分享一段代码吧
核心思想是内嵌一个iframe去发起一个请求来触发IOS设备中更新title
changeTitle: function (title) { var isIOS = /iPad|iPhone|iPod/i.test(navigator.userAgent);
if(isIOS){
var $body = $('body');
document.title = title;
// 这儿的src可以换成你的一个地址,尽量开销小,响应速度快
var $iframe = $('<iframe src="http://client.map.baidu.com/shoppingmall/images/transparent.gif"></iframe>');
$iframe.on('load',function() {
setTimeout(function() {
$iframe.off('load').remove();
}, 0);
}).appendTo($body);
} else {
document.title = title;
}
}
在微信6.5.3
版本后用iframe
的方式就不好使了。
所以在一些SPA中,使用框架的路由用这种方式不起作用了。
我是用location.href
来进行页面的强刷,路由还是定义好路由的规则,但是通过location.href
去接管页面的跳转。好使。
3.23日更新
在微信6.5.5
版本iframe
的方式又好使了。
以上是 【安卓】怎么修改ios上微信浏览器title标签 的全部内容, 来源链接: utcz.com/a/106809.html