近期一个项目扫出jQuery安全漏洞问题,客户那边要求修复好,当时用的jquery版本是1.7.1,要解决jquery漏洞需把版本升级到3.5.0上,升级时我就知道会出现问题,结果升级后果然出问题了。
项目里面有个功能调用了fullcalendar,如下图
改完jquery后,如下图
当时想着是不是因为版本不兼容的导致不能正常显示,然后进行调试未发现错误,查阅资料后也为发现问题,最后还是找了公司的前端大佬查找问题,最后发现不是因为插件不兼容的问题导致fullcalendar不能正常显示,而是jquery版本升级后修改了某些方法的执行顺序,导致方法未调用,未修改前的代码:
$(function () {fieldDate.load();})
var fieldDate = {load : function () {fieldDate.getField();fieldDate.getFieldLeaseTime();}
未改jquery前fieldDate.getFieldLeaseTime()方法能正常获取场地的信息,修改完后fieldDate.getFieIdLeaseTime()未执行,最后把fieldDate.getFieIdLeaseTime()放在了document.addEventListtener()方法里面,然后就能正常显示了。
总结:在工作中还是不够细致,应该在调试时未发现有错误就该找是不是因为改完jquery版本导致某些方法未能执行的问题。