javascript - 在 Javascript 中打印没有弹出窗口的 div 标签的内容

标签 javascript jquery

我正在努力打印没有弹出窗口的 div 标签的内容

我的代码现在看起来像这样

var DocumentContainer = document.getElementById('print');

        var WindowObject = window.open('', 'Completed Registration Form', 'width=750,height=650,top=50,left=50,toolbars=no,scrollbars=yes,status=no,resizable=yes');

        WindowObject.document.writeln(DocumentContainer.innerHTML);

        WindowObject.document.close();

        WindowObject.focus();

        WindowObject.print();

        WindowObject.close();

下面使用弹出窗口,有没有办法不使用弹出窗口呢。

最佳答案

有一种更有效的方法——不用 jQuery 或任何其他库

想法是用一个隐藏的iframe替换窗口,并打印iframe的内容。

代码如下:

    function ClickHereToPrint(){
      try{
        var oIframe = document.getElementById('ifrmPrint');
        var oContent = document.getElementById('divToPrint').innerHTML;
        var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
        if (oDoc.document) oDoc = oDoc.document;
        oDoc.write('<head><title>title</title>');
        oDoc.write('</head><body onload="this.focus(); this.print();">');
        oDoc.write(oContent + '</body>');
        oDoc.close();
      } catch(e){
        self.print();
      }
    }

这认为您的页面中有一个 iframe。如果您不这样做,只需使用以下方法创建一个:document.createElement('iframe')

关于javascript - 在 Javascript 中打印没有弹出窗口的 div 标签的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089434/

相关文章:

JavaScript 坏了?

jquery - 如何使用 jQuery 在不刷新页面的情况下更新 cookie 值?

javascript - Jquery - 隐藏列表中存在的所有具有 id 的元素

javascript - 单击事件未在 div 元素上注册 (jQuery/HTML/CSS)

javascript - 使用 ng-pattern 的文本框值仅允许小数和数字?

javascript - UpdatePanel 内的 ASP.NET GridView 直到第二次单击才会更新

javascript - Immutable.fromJS 性能问题

javascript - jquery .remove 性能

javascript - javascript/jquery 中 do until 的一种形式

jquery - 这个语法在 jquery 中是否正确