js修改title,在ios的微信下面不生效,有什么解决办法吗?
@savokiss 的方法是可以实现的,但是如果是在请求的回调中加入这段代码,是不行的
简单调查了一下,如果把代码放入setTimeout中,就无效了
setTimeout(function(){
//需要jQuery
var $body = $('body');
document.title = 'test';
// hack在微信等webview中无法修改document.title的情况
var $iframe = $('<iframe src="/favicon.ico"></iframe>');
$iframe.on('load',function() {
setTimeout(function() {
$iframe.off('load').remove();
}, 0);
}).appendTo($body);
},0);
js 改动title的话大部分是因为需要从后台获取吧,那这个方法肯定是用不了,我找时间研究一下,再来补充
补充:
//以下代码可以解决以上问题,不依赖jq
setTimeout(function(){
//利用iframe的onload事件刷新页面
document.title = 'test';
var iframe = document.createElement('iframe');
iframe.style.visibility = 'hidden';
iframe.style.width = '1px';
iframe.style.height = '1px';
iframe.onload = function () {
setTimeout(function () {
document.body.removeChild(iframe);
}, 0);
};
document.body.appendChild(iframe);
},0);
为了使 Safari 极简和尽可能地显示网页内容,Safari 8 在只打开一个页面时,竟然连网页标题都省略不显示了。但别怕,还是有办法把它找回来的。
在只有一个网页时,你只需要开启菜单中的「View -> Show Tab Bar」,就会像以前一样,即使只有一个网页,也显示标签栏了,而且只需要操作一次,Safari 会记住你的选择。
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
楼主可以试试这个hack,我没有apple没法测试
refer:微信前端开发有哪些坑或者黑魔法