背景:客户需要,认为3.0之前的版本存在XSS(跨站脚本攻击)风险,jquery版本需要从当前的1.8.2更新到3.3.1。
查询了官方文档,https://www.jquery123.com/category/deprecated/deprecated-3.0/
3.0以后的版本主要弃用的API有:.bind()、.unbind()、.delegate()、.undelegate()、jquery.fx.interval
1.9和1.10版本弃用的API有jquery.support()、.context()
详细问题:
1、attr和prop
attr:获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。
prop:获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。
attr是1.0之后使用的,prop是1.6以后使用的,用法不同,需注意。
在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined。 若要检索和更改DOM属性,比如元素的checked, selected, 或 disabled状态,使用.prop()方法。
版本升级最大改动就在这里,之前的代码大量使用attr,没办法。。。
2、报错:Uncaught TypeError: url.indexOf is not a function
这个错误是由于调用了load函数导致的错误
把代码里调用load函数的方式
//old