修复IE9&safari 的sort方法


Posted in Javascript onOctober 21, 2011

当前版本 v0.2
v0.1 修复IE9-- Array.prototype.sort 不能根据 对象属性 做排序的遗憾
v0.2 修复safari 不支持函数参数

!function(window){ 
var ua = window.navigator.userAgent.toLowerCase(), 
reg = /msie|applewebkit.+safari/; 
if(reg.test(ua)){ 
var _sort = Array.prototype.sort; 
Array.prototype.sort = function(fn){ 
if(!!fn && typeof fn === 'function'){ 
if(this.length < 2) return this; 
var i = 0, j = i + 1, l = this.length, tmp, r = false, t = 0; 
for(; i < l; i++){ 
for(j = i + 1; j < l; j++){ 
t = fn.call(this, this[i], this[j]); 
r = (typeof t === 'number' ? t : 
!!t ? 1 : 0) > 0 
? true : false; 
if(r){ 
tmp = this[i]; 
this[i] = this[j]; 
this[j] = tmp; 
} 
} 
} 
return this; 
}else{ 
return _sort.call(this); 
} 
}; 
} 
}(window);
Javascript 相关文章推荐
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
javascript实现根据时间段显示问候语的方法
Jun 18 Javascript
Node.js+Express配置入门教程
May 19 Javascript
JS模态窗口返回值兼容问题的完美解决方法
May 28 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
JavaScript中附件预览功能实现详解(推荐)
Aug 15 Javascript
layui radio性别单选框赋值方法
Aug 15 Javascript
JS实现的全选、全不选及反选功能【案例】
Feb 19 Javascript
原生JS实现京东查看商品点击放大
Dec 21 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
Oct 20 #Javascript
jquery ajax return没有返回值的解决方法
Oct 20 #Javascript
IE与FireFox中的childNodes区别
Oct 20 #Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
Oct 19 #Javascript
基于jquery的$.ajax async使用
Oct 19 #Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
Oct 19 #Javascript
模拟select的代码
Oct 19 #Javascript
You might like
php 魔术函数使用说明
2010/02/21 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
angular.js和vue.js中实现函数去抖示例(debounce)
2018/01/18 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
python实现堆栈与队列的方法
2015/01/15 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
委托书的写法
2014/08/30 职场文书
单位同意报考证明
2015/06/17 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
电力培训学习心得体会
2016/01/11 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Python函数式编程中itertools模块详解
2021/09/15 Python
一文带你探究MySQL中的NULL
2021/11/11 MySQL