修复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中通过URL传递汉字的方法
Apr 09 Javascript
jquery each()源代码
Feb 14 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
Dec 02 Javascript
bootstrap的常用组件和栅格式布局详解
May 02 Javascript
Ionic2开发环境搭建教程
Aug 20 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
Aug 08 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
JavaScript使用setTimeout实现倒计时效果
Feb 19 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临时文件的安全性分析
2014/07/04 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
php中namespace use用法实例分析
2016/01/22 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
列表内容的选择
2006/06/30 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
JS搜狐面试题分析
2016/12/16 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
Python常用小技巧总结
2015/06/01 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
浅析python继承与多重继承
2018/09/13 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
民族团结先进个人材料
2014/02/05 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015年女生节活动总结
2015/02/27 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
灵能百分百第三季什么时候来?
2022/03/15 日漫