修复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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
JavaScript prototype 使用介绍
Aug 29 Javascript
js替代copy(示例代码)
Nov 27 Javascript
jquery对ajax的支持介绍
Dec 10 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
JavaScript+CSS相册特效实例代码
Sep 07 Javascript
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
node.js调用C++函数的方法示例
Sep 21 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 Javascript
js的Object.assign用法示例分析
Mar 05 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 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
判断控件是否已加载完成的代码
2010/02/24 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
webpack3之loader全解析
2017/10/26 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
秋季运动会稿件
2014/01/30 职场文书
幼儿园见习总结
2015/06/23 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS