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的异常(可能钉钉内部做了处理) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1725798480a1043278.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论