打印谷歌地图打印并在IE8中使用“page-break-before”时出现问题

时间:2010-06-11 14:24:55

标签: javascript html google-maps internet-explorer-8 printing-web-page

我有一个恼人的问题,试图获得一个带有谷歌地图的html页面,以便正确打印,我有一个带有< h2>的谷歌地图在它上面全部包裹在一个div中,div被设置为'page-break-before:always;'在css中,以便地图及其标题始终位于新页面上。

问题是在IE8中我只能看到在打印时在前一页上呈现的地图的大部分,而在前一页上可见的地图部分是在可见边界之外的部分。地图。

HTML:

<div id="description">
    <h2>Description</h2>
    <p>Some paragraph of text</p>
    <p>Some paragraph of text</p>
    <p>Some paragraph of text</p>
</div>

<div id="map">
    <h2>Location</h2>
    <div id="mapHolder"></div>
    <script type="text/javascript">
       // ... javascript to create the google map
    </script>
</div>

CSS:

#map { page-break-before:always; }

这是IE8中渲染内容的屏幕抓取 http://twitpic.com/1vtwrd

它在我尝试过的所有其他浏览器中运行良好,包括IE7,所以我有点迷失,有没有任何想法可以阻止这种情况发生?

1 个答案:

答案 0 :(得分:2)

我发现你是否添加了一个具有高度的分页符div。 10px在Map div前面有空的html内容,那么你可以解决问题。

CSS中的

page_break_before {身高:10px;分页-前:永远; }

然后在Map div前面:

var pageBreakDiv = window.document.createElement('div'); pageBreakDiv.id ='page_break_before'; printingMapDiv.appendChild(pageBreakDiv);

并删除之前的分页符:始终;在你的#map div中。

干杯,

相关问题