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 相关文章推荐
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
May 07 Javascript
JavaScript生成的动态下雨背景效果实现方法
Feb 25 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
Dec 01 Javascript
iScroll.js 使用方法参考
May 16 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
纯js实现动态时间显示
Sep 07 Javascript
ES6中的rest参数与扩展运算符详解
Jul 18 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
Vue登录主页动态背景短视频制作
Sep 21 Javascript
js实现随机圆与矩形功能
Oct 29 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页面函数设置超时限制的方法
2014/12/01 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
详解Python中的Descriptor描述符类
2016/06/14 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Python中遍历列表的方法总结
2019/06/27 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
大学生村官任职感言
2014/01/09 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
三年级小学生评语
2014/04/22 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
明确岗位职责
2015/02/14 职场文书
python Tkinter模块使用方法详解
2022/04/07 Python
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js