【问题标题】:Printing certain div is not working correctly打印某些 div 无法正常工作
【发布时间】:2012-10-09 18:40:47
【问题描述】:

我正在使用 datables 插件在我的网络应用程序上绘制表格。

但这就是问题所在。

我有一个打印按钮,它调用我这个函数:

function printHTML(clonedDive){
        var iframe = document.createElement("iframe");
        document.body.appendChild(iframe);
    iframe.contentWindow.onunload = function(){
            $("#submenu").show("fast");
            $(".content-secondary").animate({
                             width: '15%'
                         });

            $(".content-primary").animate({
                             width: '83%'
                         });     
     };
      iframe.contentWindow.document.body.appendChild(clonedDive);
      iframe.contentWindow.print();

      document.body.removeChild(iframe); 
}

我是这样称呼这个函数的:

printHTML( document.getElementById("results").cloneNode(true));

现在results div 看起来像这样:

<div id="results">
<table id="stops" width="100%" border="1" cellspacing="2" cellpadding="5" >
                <thead>
                    <tr class="even">

                    </tr>
                </thead>

                      <tbody>
                      </tbody>

                     </table>
                     </br>

                     <hr>

                     <p id="title"><b>Map</b></p>
                     <div id="map_find">

                     </div>
</div>

所以表格是这样工作的:当您单击行时,该行会突出显示并显示地图。所以当我点击打印按钮时出现问题。

在打印预览中,我可以看到表格,但该行没有突出显示,谷歌地图也没有显示。似乎它向我展示了首先初始化的 div 并且没有突出显示的行并且没有显示谷歌地图。

我能做什么?

【问题讨论】:

    标签: javascript html printing datatable html-table


    【解决方案1】:

    您是否考虑过改用@media types

    @media print
    {
      *{
         visibility: hidden;
      }
      #results{
         visibility: visible;
      }
    }
    

    您可以使用visibility: hidden 设置您不想打印的所有内容的可见性,以及使用visibility: visible 设置您想要打印的任何内容。

    然后点击你会调用:

    window.print()

    EXAMPLE WITH MEDIA TYPE

    EXAMPLE WITHOUT MEDIA TYPE

    【讨论】:

    • 这将与任何其他 css 代码一起使用。在文档的 head 内部,来自外部 css 文件的 linked 或 style 标记中
    • 这不起作用,我尝试将几个 id 设置为可见,但没有显示
    • 您介意用您所做的更改编辑您的 OP 吗?我在帖子中添加了两个示例,向您展示使用和不使用媒体类型的情况。
    • 我尝试了与您编写的相同代码,但未显示我的 div。我可以看到它显示了 2 页,但它们是空的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    相关资源
    最近更新 更多