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 相关文章推荐
javascript 子窗体父窗体相互传值方法
May 31 Javascript
javascript与jquery中跳出循环的区别总结
Nov 04 Javascript
jquery插件jquery倒计时插件分享
Dec 27 Javascript
一个简单的jquery进度条示例
Apr 28 Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
将鼠标焦点定位到文本框最后(代码分享)
Jan 11 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
Oct 24 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
vue中使用echarts的示例
Jan 03 Vue.js
原生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 STRING 陷阱原理说明
2010/07/24 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
Python中返回字典键的值的values()方法使用
2015/05/22 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python查看微信撤回消息代码
2018/06/07 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
在keras里实现自定义上采样层
2020/06/28 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
担保书格式及范文
2014/04/01 职场文书
贷款承诺书
2015/01/20 职场文书
大学生英文求职信范文
2015/03/19 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
公司辞职信模板
2015/05/13 职场文书
纪委立案决定书
2015/06/24 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
交通安全教育主题班会
2015/08/12 职场文书