让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 相关文章推荐
超强的IE背景图片闪烁(抖动)的解决办法
Sep 09 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
Oct 21 Javascript
使用JS画图之点、线、面
Jan 12 Javascript
JavaScript获得指定对象大小的方法
Jul 01 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 Javascript
Vue实现图片轮播组件思路及实例解析
May 11 Javascript
Vue使用axios引起的后台session不同操作
Aug 14 Javascript
vue+openlayers绘制省市边界线
Dec 24 Vue.js
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
用Flash图形化数据(二)
2006/10/09 PHP
PHP中的extract的作用分析
2008/04/09 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
webpack开发跨域问题解决办法
2017/08/03 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python networkx包的实现
2020/02/14 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
倡议书范文
2014/04/16 职场文书
争先创优心得体会
2014/09/12 职场文书
小马王观后感
2015/06/11 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
大学生创业计划书
2019/06/24 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
PyQt5实现多张图片显示并滚动
2021/06/11 Python
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL