【IE8兼容问题】记录一次生产环境JS中split方法截取字符串异常及处理
问题描述:
生产环境,客户反应,做的待办集成功能,在门户上点待办任务名称跳转页面时,中转页面卡住不动,不能正常跳转到系统进行待办任务处理。
PC环境:360企业浏览器
原因分析:
1.页面中代码有错,或部署时缺引入文件
问题排查:
去测试环境进行验证,不管是谷歌浏览器,360急速浏览器,360企业浏览器居然都正常,没发现问题,代码正常,也不缺引入文件。
又去找客户,她反馈她用的360企业浏览器兼容模式,回来开发环境复测,依然正常,主打一个懵逼,去生产环境看,把跳转地址复制到IE8,然后发现左下角有个黄色感叹号,打开错误如下
网页错误相信信息 用户代理:Mozilla/4.0(...) 消息:缺少对象 行:144 字符:5 代码:0 URL:http://xxxxxx:8080/xxx/index_sso.jsp?参数1=aaa&参数2=bbb
找到中转页面跳转页面的逻辑代码
var currentUrl=window.location.href; var arrUrl=currentUrl.split("?");//出错的144行
第一反应是currentUrl不会没取到吧,通过alert测试获取正常,最后发现是split方法的问题,去测试环境IE8试,split方法调用竟然也是正常的,通过对比才发现,这个split方法只会在生产环境有问题
去查split的api,这个是JavaScript自带的方法,是支持IE8浏览器的,神奇吧,只有你做过运维,才知道生产环境会有各种神奇且不可思议的异常
于是,修改代码如下
var currentUrl=window.location.href; var urlParam=currentUrl.substring(currentUrl.indexOf("?")+1,currentUrl.length);//修改
去生产环境验证,已正常。
其实,现在的系统用IE或者兼容模式的已经很少了,但客户还是会有类似的旧系统,遇到问题,还是需要去处理!
本文来自博客园,作者:泠雨0702,转载请注明原文链接:https://www.cnblogs.com/lingyu0702/p/18671010
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了