当前位置:  开发笔记 > 编程语言 > 正文

打印DIV的内容

如何解决《打印DIV的内容》经验,为你挑选了11个好方法。

什么是打印DIV内容的最佳方式?



1> Bill Paetzke..:

对早期版本的轻微更改 - 在CHROME上测试

function PrintElem(elem)
{
    var mywindow = window.open('', 'PRINT', 'height=400,);

    mywindow.document.write('' + document.title  + '');
    mywindow.document.write('');
    mywindow.document.write('

' + document.title + '

'); mywindow.document.write(document.getElementById(elem).innerHTML); mywindow.document.write(''); mywindow.document.close(); // necessary for IE >= 10 mywindow.focus(); // necessary for IE >= 10*/ mywindow.print(); mywindow.close(); return true; }


这是一个快速的解决方案.理想的解决方案是使用单独的CSS进行打印.也许您可以详细说明问题的详细信息(要求).
您可以在弹出窗口中引用样式表.在标签之间添加另一行代码:mywindow.document.write('');
@Rahil将其更改为:mywindow.document.close(); mywindow.focus(); mywindow.print(); mywindow.close();
如果无法加载打印预览,有时可能会发生打印预览的内容很大(我注意到它仅适用于Chrome,而相同的页面打印在Firefox中完美,但我不排除它可能会在Firefox或其他浏览器中发生).我找到的最好方法是仅在加载窗口后运行打印(并关闭).所以在:`mywindow.document.write(data);`添加这个:`mywindow.document.write('

您的打印按钮将如下所示:


编辑:如果您有需要保留的表单数据,克隆将不会复制该表单数据,因此您只需要获取所有表单数据并在还原后将其替换为:





5> huston007..:

从这里http://forums.asp.net/t/1261525.aspx




div print




//HTML Page
//Other content you wouldn't like to print



The Div content which you want to print

//Other content you wouldn't like to print //Other content you wouldn't like to print



6> Robert..:

我使用Bill Paetzke答案打印div包含图像,但它不适用于谷歌浏览器

我只需添加此行myWindow.onload=function(){以使其工作,这里是完整的代码



    


    
This will be printed.
This will not be printed.
Nor will this.

我希望这可以帮助别人



7> Techie..:
function printdiv(printdivname)
{
var headstr = "Booking Details";
var footstr = "";
var newstr = document.getElementById(printdivname).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr+newstr+footstr;
window.print();
document.body.innerHTML = oldstr;
return false;
}

这将打印您想要的div区域并将内容设置回原样.printdivname是要打印的div.



8> 小智..:

创建一个单独的打印样式表,隐藏除要打印的内容之外的所有其他元素.'media="print"加载时标记它:

这允许您为打印输出加载完全不同的样式表.

如果要强制为页面显示浏览器的打印对话框,可以使用JQuery在加载时执行此操作:

$(function() { window.print(); });

或触发您想要的任何其他事件,例如用户单击按钮.


是的,它也有效; 很难 - 很好,不可能 - 确切地知道情景是什么.

9> Jason..:

我创作了一个插件来解决这个问题.我对那里的插件不满意,并着手制作更广泛/可配置的内容.

https://github.com/jasonday/printThis



10> 小智..:

我认为到目前为止提出的解决方案有以下缺点:

    CSS媒体查询解决方案假设只有一个div可以打印.

    javascript解决方案仅适用于某些浏览器.

    销毁父窗口内容并重新创建它会造成混乱.

我对上述解决方案进行了改进.以下是我测试过的具有以下优点的方法.

    适用于所有浏览器,包括IE,Chrome,Safari和Firefox.

    不破坏并重新加载父窗口.

    可以在页面中打印任意数量的DIV.

    使用html模板以避免容易出错的字符串连接.

要点:

    必须在新创建的窗口上有一个onload ="window.print()".

    不要从父级调用targetwindow.close()或targetwindow.print().

    确保你做targetwindow.document.close()和target.focus()

    我正在使用jquery,但你也可以使用普通的javascript做同样的技术.

    你可以在这里看到这个http://math.tools/table/multiplication.您可以通过单击框标题上的打印按钮单独打印每个表.





 Print Para 1
 Print Para 2
  

Para 1 : Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Para 2 : Lorem 2 ipsum 2 dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.



11> live-love..:

接受的解决方案无效。Chrome浏览器正在打印空白页,因为它没有及时加载图像。此方法有效:

编辑:我的帖子发表后,似乎接受的解决方案已被修改。为什么要投票?该解决方案也可以正常工作。

    function printDiv(divName) {

        var printContents = document.getElementById(divName).innerHTML;
        w = window.open();

        w.document.write(printContents);
        w.document.write('' + 'window.onload = function() { window.print(); window.close(); };' + '');

        w.document.close(); // necessary for IE >= 10
        w.focus(); // necessary for IE >= 10

        return true;
    }

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有