删除百度地图百度表示和比例尺
如图,在调用百度API的时候,经常遇到有百度标示不知道怎么去除的问题,这里,我介绍一个简单粗暴的方式,好处坏处也就是多了个0.0几秒的生成标签的时间,所以,不影响性能:
直接在API生成代码initMap后面加段下面这个代码就 行了:
//删除百度图标 function delMapBaiDuLabel(){ //anchorBL setTimeout(function(){ function removeElement(_element){ var _parentElement = _element.parentNode; if(_parentElement){ _parentElement.removeChild(_element); } } var anchorBL = document.getElementsByClassName('anchorBL'); console.info(anchorBL.length) for(var i=0;i<anchorBL.length;i++){ console.info(anchorBL[i]); removeElement(anchorBL[i]); } },1000) } //删除比例尺 function delScale(){ setTimeout(function(){ function removeElement(_element){ var _parentElement = _element.parentNode; if(_parentElement){ _parentElement.removeChild(_element); } } var anchorBL = document.getElementsByClassName('BMap_scaleCtrl'); console.info(anchorBL.length) for(var i=0;i<anchorBL.length;i++){ console.info(anchorBL[i]); removeElement(anchorBL[i]); } },1000); } //方法调用 // delMapBaiDuLabel(); // delScale();
当然,上面这个代码加上去还是会有logo一闪的情况,所以,可以先设置anchorBL为display:none,这样一开始就不会显示出来,等加载完成了在控制他显示出来。
既然节点都可以获取到了,那还有什么做不了得呢,同样思想,想换内容不是很轻松吗??
下面是衍生:
//change the logo function delMapBaiDuLabel(){ //anchorBL setTimeout(function(){ function removeElement(_element){ var _parentElement = _element.parentNode; if(_parentElement){ _parentElement.removeChild(_element); } } var anchorBL = document.getElementsByClassName('anchorBL'); var chs = anchorBL[0].childNodes; var imgs = chs[0].childNodes; console.info(anchorBL[0]); imgs[0].src = "http://og5r1iuwq.bkt.clouddn.com/lo.png"; console.info(imgs[0]) anchorBL[0].style.display = 'block'; /** * styleArry [{key:'display',val:'none'},{key:'width',val:'156px'},{key:'height',val:'30px'}] */ function css(domObj,styleArry){ for(var i=0;i<styleArry.length;i++){ domObj.style[styleArry[i].key] = styleArry[i].val; } } css(imgs[0],[{key:'display',val:'block'},{key:'width',val:'156px'},{key:'height',val:'30px'}]); // anchorBL // for(var i=0;i<anchorBL.length;i++){ // console.info(anchorBL[i]); // removeElement(anchorBL[i]); // } },1000) }
以雷霆击碎黑暗