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 创建对象(常见的几种方法)
Nov 03 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
Aug 28 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
Dec 18 Javascript
原生JS实现拖拽图片效果
Aug 27 Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
vue动画打包后失效问题的解决方法
Sep 18 Javascript
详解小程序如何动态绑定点击的执行方法
Nov 26 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
Apr 09 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使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
javascript 精粹笔记
2010/05/09 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
python merge、concat合并数据集的实例讲解
2018/04/12 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
利用nohup来开启python文件的方法
2019/01/14 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
python能在浏览器能运行吗
2020/06/17 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
几个数据库方面的面试题
2016/07/01 面试题
自主招生自荐书
2013/11/29 职场文书
公司担保书范文
2014/05/21 职场文书
担保书格式
2015/01/20 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书