打印从服务器加载的内容

时间:2012-01-09 11:33:56

标签: javascript html css browser printing

我在加载整个页面后通过JS从服务器加载一些图片。 用户点击意味着加载一些图像并将其插入DOM。

此图片具有唯一ID,现在我想通过JS帮助打印出此图像。 我为打印目的做了样式文件

* {
    display:none;
    visibility: none;
}
html, body, #out_image_1 {
    background: none;
    display: block !important;
    left: 0px;
    margin: 0px;
    padding: 0px;
    position: relative;
    top: 0px;
}

并调用print

$("#print-button2").click(function() {
    window.print();
    return false;
})

但是页面是空白的(空的)我哪里错了?

由于

1 个答案:

答案 0 :(得分:1)

有几个原因可能无法打印。

  • 您的图片可能包含在其他元素中,但根据您的CSS,父元素仍为display:none

    只有当#out_image_1body的直接孩子时,您的CSS才有效: http://jsfiddle.net/RXMx8/

    但如果#out_image_1除了bodyhtml之外还有任何其他父元素,则不会这样: http://jsfiddle.net/RXMx8/1/

我认为这是问题,但其他原因可能是:

  • 默认情况下,您的浏览器未设置为打印图像。使用window.print()可以跳过“打印预览”,这可以让您切换此设置。

  • 您的HTML没问题,但您的目标是错误的元素。

  • 你失去了墨水; )

即使您使用javascript添加元素,您仍然可以打印它。要进行调试,请删除* { display:none; }并查看会发生什么。

*顺便说一下,它应该是visibility: hidden;; “none”不是一个有效的值,但它对display:none来说是多余的,所以你根本不需要它。