ie8支持function.bind()方法
?123456789101112131415161718192021 <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>
主要解決“百度地圖”官網(wǎng)上的例子的bug,摘取如下代碼:
?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 <!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>給多個(gè)點(diǎn)添加信息窗口</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>點(diǎn)擊標(biāo)注點(diǎn),可查看由純文本構(gòu)成的簡(jiǎn)單型信息窗口</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,地址:北京市東城區(qū)王府井大街88號(hào)樂(lè)天銀泰百貨八層], [116.406605,39.921585,地址:北京市東城區(qū)東華門大街], [116.412222,39.912345,地址:北京市東城區(qū)正義路甲5號(hào)] ]; var opts = { width : 250, // 信息窗口寬度 height: 80, // 信息窗口高度 title : 信息窗口 , // 信息窗口標(biāo)題 enablemessage:true//設(shè)置允許信息窗發(fā)送短息 }; 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])); // 創(chuàng)建標(biāo)注 var content = data_info[i][2]; map.addoverlay(marker); // 將標(biāo)注添加到地圖中 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); // 創(chuàng)建信息窗口對(duì)象 map.openinfowindow(infowindow,point); //開啟信息窗口 } </script>
2025國(guó)考·省考課程試聽報(bào)名