场景:
js中判断一个string是否在一个js的数组中。
方法:
代码如下 | 复制代码 |
if (['a', 'b', 'c'].indexOf(str) >= 0) { //do something } |
判断选择的文件的扩展名是否在指定的数组中:
代码如下 | 复制代码 |
var position = selectedFilePath.lastIndexOf("."); if(position<=0){ alert("不允许上传这种扩展名的文件!"); return; } else{ var ext = selectedFilePath.substr(position); ext = ext.toLowerCase(); var extArr = [".jpg",".png",".gif", ".jpeg"]; if(extArr.indexOf(ext) == -1){ alert("不允许上传这种扩展名的文件!"); return; } } |
问题:ie9以下的版本不支持 [].indexOf()
解决方案
针对ie8及以下版本,自己创建indexOf函数。
ie8.js :
代码如下 | 复制代码 |
if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/) { var len = this.length >>> 0; var from = Number(arguments[1]) || 0; for (; from < len; from++) |
然后在相关页面中引入ie8.js
代码如下 | 复制代码 |
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <script src="./assets/js/ie8.js"></script> <![endif]--> |
时间: 2024-10-26 02:39:06