让IE8浏览器支持function.bind()方法


Posted in Javascript onOctober 16, 2014

IE8支持function.bind()方法

<script type="text/javascript"> 
if (!Function.prototype.bind) { 
Function.prototype.bind = function (oThis) { 
if (typeof this !== "function") { 
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); 
} 
var aArgs = Array.prototype.slice.call(arguments, 1), 
fToBind = this, 
fNOP = function () {}, 
fBound = function () { 
return fToBind.apply(this instanceof fNOP && oThis 
? this 
: oThis, 
aArgs.concat(Array.prototype.slice.call(arguments))); 
}; 
fNOP.prototype = this.prototype; 
fBound.prototype = new fNOP(); 
return fBound; 
}; 
} 
</script>

主要解决“百度地图”官网上的例子的bug,摘取如下代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<style type="text/css"> 
body, html {width: 100%;height: 100%;margin:0;font-family:"微软雅黑";} 
#allmap{width:100%;height:500px;} 
p{margin-left:5px; font-size:14px;} 
</style> 
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=39b92e64ae5622663ceceaccd8ab8eb1"></script> 
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> 
<title>给多个点添加信息窗口</title> 
<script type="text/javascript"> 
if (!Function.prototype.bind) { 
Function.prototype.bind = function (oThis) { 
if (typeof this !== "function") { 
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); 
} 
var aArgs = Array.prototype.slice.call(arguments, 1), 
fToBind = this, 
fNOP = function () {}, 
fBound = function () { 
return fToBind.apply(this instanceof fNOP && oThis 
? this 
: oThis, 
aArgs.concat(Array.prototype.slice.call(arguments))); 
}; 
fNOP.prototype = this.prototype; 
fBound.prototype = new fNOP(); 
return fBound; 
}; 
} 
</script> 
</head> 
<body> 
<div id="allmap"></div> 
<p>点击标注点,可查看由纯文本构成的简单型信息窗口</p> 
</body> 
</html> 
<script type="text/javascript"> 
// 百度地图API功能 
map = new BMap.Map("allmap"); 
map.centerAndZoom(new BMap.Point(116.417854,39.921988), 15); 
var data_info = [[116.417854,39.921988,"地址:北京市东城区王府井大街88号乐天银泰百货八层"], 
[116.406605,39.921585,"地址:北京市东城区东华门大街"], 
[116.412222,39.912345,"地址:北京市东城区正义路甲5号"] 
]; 
var opts = { 
width : 250, // 信息窗口宽度 
height: 80, // 信息窗口高度 
title : "信息窗口" , // 信息窗口标题 
enableMessage:true//设置允许信息窗发送短息 
}; 
for(var i=0;i<data_info.length;i++){ 
var marker = new BMap.Marker(new BMap.Point(data_info[i][0],data_info[i][1])); // 创建标注 
var content = data_info[i][2]; 
map.addOverlay(marker); // 将标注添加到地图中 
marker.addEventListener("click",openInfo.bind(null,content)); 
} 
function openInfo(content,e){ 
var p = e.target; 
var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat); 
var infoWindow = new BMap.InfoWindow(content,opts); // 创建信息窗口对象 
map.openInfoWindow(infoWindow,point); //开启信息窗口 
} 
</script>
Javascript 相关文章推荐
JavaScript取得鼠标绝对位置程序代码介绍
Sep 16 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
Nov 20 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
Jul 29 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
详解Document.Cookie
Dec 25 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
浅谈JS中json数据的处理
Jun 30 Javascript
JS实现的tab切换选项卡效果示例
Feb 28 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 Javascript
js实现计时器秒表功能
Dec 16 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
jquery获取radio值(单选组radio)
Oct 16 #Javascript
js数组的基本操作(很全自己整理的)
Oct 16 #Javascript
Javascript中的关键字和保留字整理
Oct 16 #Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 #Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
Oct 16 #Javascript
jquery获取radio值实例
Oct 16 #Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
Oct 16 #Javascript
You might like
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
javascript模拟命名空间
2015/04/17 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
pyenv命令管理多个Python版本
2017/03/26 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
django 简单实现登录验证给你
2019/11/06 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
库房保管员岗位职责
2014/04/07 职场文书
租房合同协议书
2014/04/09 职场文书
小学校长汇报材料
2014/08/20 职场文书
工程承包协议书范本
2014/09/29 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
考研复习计划
2015/01/19 职场文书
工作岗位职责范本
2015/02/15 职场文书
收入证明申请书
2015/06/12 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书