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 select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
Dec 19 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
AngularJS 监听变量变化的实现方法
Oct 09 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
vue实现路由切换改变title功能
May 28 Javascript
layui 阻止图片上传的实例(before方法)
Sep 26 Javascript
vue中axios封装使用的完整教程
Mar 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
简单的php购物车代码
2020/06/05 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
prototype.js的Ajax对象
2006/09/23 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
2015/11/30 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
微信小程序的生命周期的详解
2017/10/19 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
Python交互式图形编程的实现
2019/07/25 Python
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
教育科研先进个人材料
2014/01/26 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
新年晚会开场白
2015/05/29 职场文书
教师考核鉴定意见
2015/06/05 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
一级电子管军用接收机测评
2022/04/05 无线电