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 相关文章推荐
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
Oct 20 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
3种js实现string的substring方法
Nov 09 Javascript
小巧强大的jquery layer弹窗弹层插件
Dec 06 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
May 03 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
Mar 09 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
Jan 31 Javascript
微信小程序实现弹出菜单
Jul 19 Javascript
详解微信小程序的 request 封装示例
Aug 21 Javascript
JS猜数字游戏实例讲解
Jun 30 Javascript
Vue记住滚动条和实现下拉加载的完美方法
Jul 31 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
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
js 三级关联菜单效果实例
2013/08/13 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python版百度语音识别功能
2019/07/09 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
《开国大典》教学反思
2014/04/19 职场文书
员工安全责任书范本
2014/07/24 职场文书
校车安全责任书
2014/08/25 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
2015最新婚礼主持词
2015/06/30 职场文书
导游词之桂林山水
2019/09/20 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript