admin管理员组

文章数量:1532286

这天接了一个小需求 就是 用户要做一个简单地h5 页面  然后网页标题 是用户自己决定 

但是项目中公共的js中 就做过一次 标题修改了    

然后我按照日常 是 在数据回来之后 ajax请求中   修改下 网页标题

document.title = "你好 js"

然后 在微信内置浏览器,其他的一些主流手机浏览器中测试了下  过关了     就在钉钉 给人家了 

过了一会  就给我说   我们的那个标题 你没有给我改啊  

我奇怪了   还以为他们在故意刁难我的   我说我测试通过了  怎么可能没改

人家说   你打开下 看下    人家就在钉钉中 把链接打开了  我也是图方便 就在钉钉中 直接打开了 

打开一下  傻眼了  确实没改  

我当时是 懵逼的   赶紧去 微信上测试下     微信 确实是正常的 

1.  第一步 我以为是  兼容性写法的问题  (虽然内心上是很不承认的 )

然后  document.getElementByTagName('title').innerHTML    $('title').text()     $('title').html()    

最后和我预想的一样 都是失败了 了  

这天接了一个小需求 就是 用户要做一个简单地h5 页面  然后网页标题 是用户自己决定 

但是项目中公共的js中 就做过一次 标题修改了    

然后我按照日常 是 在数据回来之后 ajax请求中   修改下 网页标题

document.title = "你好 js"

然后 在微信内置浏览器,其他的一些主流手机浏览器中测试了下  过关了     就在钉钉 给人家了 

过了一会  就给我说   我们的那个标题 你没有给我改啊  

我奇怪了   还以为他们在故意刁难我的   我说我测试通过了  怎么可能没改

人家说   你打开下 看下    人家就在钉钉中 把链接打开了  我也是图方便 就在钉钉中 直接打开了 

打开一下  傻眼了  确实没改  

我当时是 懵逼的   赶紧去 微信上测试下     微信 确实是正常的 

1.  第一步 我以为是  兼容性写法的问题  (虽然内心上是很不承认的 )

然后  document.getElementByTagName('title').innerHTML    $('title').text()     $('title').html()    

最后和我预想的一样 都是失败了 了  

用户那边催的还比较紧     期间还说了下 这个是不是有点难度呢  

我当时 回了下  在钉钉上有点问题    在其他的 地方是正常的    你去微信看看  或者其他的手机浏览器 看看       

人家看了 回了句  可以   钉钉改不了 就无所谓了    反正用 钉钉打开内置浏览器的人也不多  

我是本意 不想接受这个  结果的    

 

2.  开始以为 钉钉不让修改 webview 的标题呢  不过立刻就被我否定了   那么公共方法内部 怎么可以修改   这个想法就pass掉了

 

3.  钉钉不支持  两次 修改标题吗     这个好像有点 道理 

立马 做了一个 demo  拿着去钉钉里面测试     

结果是可以的    这个想法 也是错的   

这个时候 有点 难受了     突然  脑袋里面  想到了一个想法了   

ajax 请求是 异步的  我之前就是在ajax 请求成功 回调函数中修改的标题     我也搞一个 定时器 修改标题 试试看

document.title = "hello world";
setTimeout(() => {
	$('title').text('你好 js');
}, 3000)

终于终于 问题复现了  然后去其他的内置浏览器 一个一个过了下  都是可以更改 就钉钉内置的不可以 (至于为啥 不可以 我也不知道)

  知道问题就简单了  我把 修改的代码  从ajax拿出来 就可以了   放在外部的 主体中执行    不在宏任务中执行    然后问题就解决了 

其实几乎 浏览器 都可以使用  document.title 进行标题修改呢  

想去体验下 的 这里 我把  之前测试的 二维码 放在下面 进行测试

 

 

 

又是挖坑 填坑的一天  关注我 持续更新前端知识       加油  

 

 

 

 

 

本文标签: 异常浏览器网页title