我們目前的網站比較老,大概有10年以上的歷史了,裏面引出了各種版本的jq,有V1.3.2,V1.7.2,V1.8.2,V1.11.1。
由於之前網上遭遇過黑客攻擊且勒索,後來解決問題之後,公司出了錢請了專業的人士排查我們站點上面代碼存在的一些漏洞。
其中
jq 要統一引用 V1.12.2版本,由此引出了一大堆問題,下面針對問題修復的辦法,可能不是最好的,但卻是我最快想到的,如果大家有更好的辦法,請指出。
1:不支持空 屬性選擇器
只好加個判斷條件
2:不支持找頁面中不存在的屬性
2.1獲取手動選中CheckBox後Jq 獲取不到 得到的值是undefined
錯:jQuery(this).attr("checked")
對:jQuery(this).prop("checked") 或 jQuery(this).is(':checked')
2.2獲取手動輸入input框的值 得到的值是undefined
錯:var data_v = jQuery(e.currentTarget).attr("value");
對:var data_v = jQuery(e.currentTarget).val();
3:live() 方法在 jQuery 版本 1.7 中被廢棄,在版本 1.9 中被移除。使用 on() 方法代替。
4:用attr對input輸入框賦值不生效
錯:var data_v = jQuery(input).attr("value",“ddd”);
對:var data_v = jQuery(input).val(“ddd”);
5:之前 div 有value屬性 都可以 通過 .val()方法 獲取 現在不行
錯:var data_v = jQuery(div).val();
對:var data_v = jQuery(div).attr("value”);