首页 > 其他分享 >解决在ie8中不支持该属性或者方法的问题

解决在ie8中不支持该属性或者方法的问题

时间:2022-11-22 14:04:04浏览次数:56  
标签:trim ie8 浏览器 文件 问题 报错 解决 方法 属性

image

在工作中,有遇到这样一种问题,测试人员或者用户告诉你这个功能在原来的浏览器上可以使用,换一个浏览器就不行了。
这时候,开发人员心头咯噔一下,坏了,不会是用的IE浏览器吧。一问果然是如此,更难的是有时候,用的还是IE7、IE8这种浏览器。遇到这种问题,开发们首先就是心里暗自“窃喜”,然后努力的说服测试、客户升级浏览器,更换浏览器尝试,毕竟每一个开发都对IE浏览器“爱不释手”。
偶然的一次中,就在前端的测试中遇到了这样一个报错对象不支持该属性或者方法,通过前端调试报错的位置是出现在了if (pattern. test(field val().trim()))。单但从这个报错信息来看,是不容易找到原因的,没有任何其他的提示,只有如下的截图信息。
image

为了解决这个问题,和同事一起讨论调试了一下午才解决了。主要解决的思路如下:

1、定位问题

在第一步解决问题的时候,查看问题具体的报错情况,这次if (pattern. test(field val().trim())) 这个报错来看,就是。trim()方法在IE8中没有被支持。
这里猜想,就是在方法中有使用到了这个方法,可以在具体的方法中去查找问题。

2、注释方法的解决办法

在一步骤中,定位到问题是出在了方法上,所以去了具体方法的实现中去看有没有使用到。通过查找发现,没有查找到相关使用到的地方,于是使用另外的一种办法,只能用注释方法办法去一点点的排查。
注释方法的时候,将所有有报错的地方,都注释掉了,到时报错的问题依旧是存在,说明在这个报错的位置中,不仅仅trim()犯法的原因,更可能有其他的原因。

3、追本溯源

在发现注释方法也不行的时候,考虑可能是导入的JS文件资源的问题,可能是导入的资源错误问题。
于是,开始比对其他使用到相关方法的地方,看看导入文件的差异性是什么,对比发现了问题所在,在引入文件中,使用的文件名字不一样,是分别引用了不同的文件。
同样是使用的一个方法,引用文件的内容是不同,其他地方引用的文件中,有具体.trim()方法的实现,而在出问题的引用文件中并没,所以导致了在具体实现方法的时候就会不停的报错。
确实,通过这个方法,成功的将问题解决了,没有报错了。
在ie8中,对方法的支持是比较严格的,只有有定义了才会去实现,否则就是报错找不到对象或者是不支持该属性方法。

4、总结

实际在解决问题的时候,做到需要能将问题定位,定位好后去一步步解决问题,特别是在找不到问题所在的时候,考虑可能是引入的文件有问题或者是哪个地方的方法名参数写的错误了。总之就是,写代码一定要细心细心再细心。

标签:trim,ie8,浏览器,文件,问题,报错,解决,方法,属性
From: https://www.cnblogs.com/tomes/p/16914909.html

相关文章