前端er干干净净打印百度地图的方法
由于百度地图的死活不改进的臭毛病,导致需要打印地图时就很不爽。
毛病:
1、多余的不需要打印的元素,比如logo, 空白的备注框,多余的文字和按钮。
2、默认至少会打印两页纸,第一页是内容,第二页往往是空白,造成很大的浪费。
我在百度地图的网站上提交了问题报告,几个月过去了没回应;在微博上向百度地图官博又提交了问题报告,对方回复说反馈給产品部门了,但又几十天过去了,涛声依旧。
作为一名有那么一点点挑剔的前端er,自然无法忍受,用自己的方法改变一下吧。
先从百度地图主界面,选“工具”下拉菜单,再点“打印”,会跳出打印页面。
在打印页面加载后,调出控制台,运行下面的js代码:
//干净打印百度地图var d=document,gi='getElementById',wp=d[gi]('wp'), mh=d[gi]('MapHolder'),t;wp.appendChild(mh);while(t=mh.previousSibling)wp.removeChild(t);while(t=wp.nextSibling)wp.parentNode.removeChild(t);wp.style.marginTop='50px';d.body.style.height='auto';d.documentElement.style.height='auto';d[gi]('MapHolder').style.pageBreakAfter='avoid';运行完这个,就很清静了,再打印就OK。
这段主要做了2件事情,一是删除多余元素,节省打印空间,二是修正CSS,防止多打印1页空白。
这段脚本只保留地图区域,如果还要打印公交换乘等文字信息的,就不适用了。
打印的时候,我喜欢选横版打印,并且去掉标题,网址,页码等页头页脚内容。