JS如何设置iOS中微信浏览器的title


Posted in Javascript onNovember 22, 2016

说到web前端,浏览器差异是不可回避的问题,这次在项目就遇到下面的问题:

微信导航栏的内容是直接拿的项目中title来设置的。但是现在做的项目是一个单页应用,整个页面只会在第一次完全刷新,后面只会局部刷新,所以只能在页面刷新的时候通过js动态修改title。开始我们使用的做法如下:

document.title = "微信导航栏想要显示的内容";
$("title").text("微信导航栏想要显示的内容");
document.getElementsByTagName("title")[0].innerText = "微信导航栏想要显示的内容"

上面的的方法简单方便,可惜上面的方法在安卓上面设置没有问题,但是iOS微信浏览器是无效。

解决方法:

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);

原理比较简单,之前是因为微信浏览器首次加载页面初始化title后,就再也不监听 document.title的change事件。而这里修改title之后,给页面加上一个内容为空的iframe,随后立即删除这个iframe,这时候会刷新title。但是,在iframe加载和删除的时候,iOS页面会有几毫秒的闪动(有灰色的框),Android直接有灰色的框出现在页面不消失,所以,一开始加载iframe的时候,就将该iframe的样式设置为:display: none;这样就解决了这个问题,同时因为display:none这个设置,iframe是脱离文本流的,那么加载和删除这个iframe都不会改变文本流,也不会触发页面渲染。

以上所述是小编给大家介绍的JS如何设置iOS中微信浏览器的title,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
网站被黑的假象--ARP欺骗之页面中加入一段js
May 16 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
JS简单的轮播的图片滚动实例
Jun 17 Javascript
随鼠标上下滚动的jquery代码
Dec 05 Javascript
javascript中caller和callee详解
Aug 10 Javascript
Node.js插件安装图文教程
May 06 Javascript
JS原型链怎么理解
Jun 27 Javascript
JavaScript6 let 新语法优势介绍
Jul 15 Javascript
JS动态给对象添加属性和值的实现方法
Oct 21 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
微信小程序实现自动定位功能
Oct 31 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
Jul 18 Javascript
原生JS查找元素的方法(推荐)
Nov 22 #Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 #Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 #Javascript
javascript入门之window对象【新手必看】
Nov 22 #Javascript
AngularJS实现DOM元素的显示与隐藏功能
Nov 22 #Javascript
JavaScript ES6中CLASS的使用详解
Nov 22 #Javascript
AngularJS实现ajax请求的方法
Nov 22 #Javascript
You might like
php json转换成数组形式代码分享
2014/11/10 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
PHP单链表的实现代码
2016/07/05 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python发送邮件测试报告操作实例详解
2018/12/08 Python
python实现一组典型数据格式转换
2018/12/15 Python
高考考python编程是真的吗
2020/07/20 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
马来西亚网上购物:Youbeli
2018/03/30 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
工厂会计员职责
2014/02/06 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
扬州个园导游词
2015/02/06 职场文书
2015年圣诞节寄语
2015/08/17 职场文书
《月光曲》教学反思
2016/02/16 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
python+opencv实现目标跟踪过程
2022/06/21 Python