javascript - 怎么修改ios上微信浏览器title标签
阿神
阿神 2017-04-11 10:30:46
[JavaScript讨论组]

问题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端为啥没效果?

阿神
阿神

闭关修行中......

全部回复(3)
迷茫


直接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的方式又好使了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号