修复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 相关文章推荐
事件模型在各浏览器中存在差异
Oct 20 Javascript
JS trim去空格的最佳实践
Oct 30 Javascript
让ie6也支持websocket采用flash封装实现
Feb 18 Javascript
jquery live()重复绑定的解决方法介绍
Jan 03 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
Node.js DES加密的简单实现
Jul 07 Javascript
深入理解(function(){... })();
Aug 16 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 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 生成饼图 三维饼图
2009/09/28 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
javascript 事件绑定问题
2011/01/01 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
js切换div css注意的细节
2012/12/10 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python实现按行分割文件
2019/07/22 Python
Python datetime包函数简单介绍
2019/08/28 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
市场营销专业推荐信
2013/11/03 职场文书
农民入党思想汇报
2014/01/03 职场文书
项目总经理岗位职责
2014/02/14 职场文书
解除施工合同协议书
2014/10/17 职场文书