Js- IE不相容 replaceAll 、indexOf、trim 物件不支援屬性或方法 - 解決辦法

Js- IE不相容 replaceAll 、indexOf、trim 物件不支援屬性或方法 - 解決辦法


解決replaceAll 在IE不能使用的問題

解:自己增加replaceAll
加上這段script之後,replaceAll 就可以用了
 <script language="javascript" type="text/javascript">
String.prototype.replaceAll = function (FindText,RepText) {
regExp = new RegExp(FindText, "g");
return this.replace(regExp,RepText);
  }
</script>



解決indexOf在IE不能使用的問題

原本使用list.indexOf("a")==-1    

解:
改成用jquery裡的$.inArray替代indexOf
$.inArray("a", list)==-1
記得CDN jquery (點進去可選版本

或是這邊提供1.12版本
 <script src="https://code.jquery.com/jquery-1.12.4.js"
integrity="sha256-Qw82+bXyGq6MydymqBxNPYTaUXXq7c8v3CwiYwLLNXU=" crossorigin="anonymous"></script>


解決trim在IE不能使用的問題

原本的str.trim()
解:將str.trim()改成下列樣式即可
str.replace(/^\s\s*/, '' ).replace(/\s\s*$/, '' )

或是像replaceAll 一樣自訂trim
 <script language="javascript" type="text/javascript">
String.prototype.trim = function () {
return this .replace(/^\s\s*/, ” ).replace(/\s\s*$/, ” );
}

</script>


留言