javascript - 打印包含文本区域的 div。用户使用js输入

标签 javascript jquery printing

我有一个简单的脚本,可以打印网页的一部分。 但是,它不会打印用户输入。

我的目标是只打印表单和用户输入;不是网页的其余部分。

我不想使用CSS;只是 js/jQuery 和 html。

我的问题是:如何打印各种表单输入元素(包括用户输入)?

HTML:

<div id="print-content">
        <textarea>Print User Input</textarea>
        <input type="button" onclick="printDiv('print-content')" value="print a div!"/>
</div>

js:

<script type="text/javascript">
    function printDiv(divName) {
        var printContents = document.getElementById(divName).innerHTML;
        var originalContents = document.body.innerHTML;
        document.body.innerHTML = printContents;
        window.print();
        document.body.innerHTML = originalContents;
    }
</script>

最佳答案

输入的当前值未在 HTML 中表示(仅默认值),因此它不会显示在 innerHTML.

您需要循环遍历原始页面中的所有输入,读取它们的 value 属性,然后将值复制到新页面上的新输入。

<小时/>

您可能最好使用 CSS 和 @media print 来隐藏您不想打印的元素,而不是使用 innerHTML 多个重写文档次。

关于javascript - 打印包含文本区域的 div。用户使用js输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53409105/

相关文章:

javascript - 有没有什么可以保证在 JavaScript 中访问对象属性的时间恒定?

javascript - 如何使用vuetify扩展面板@click?

javascript - 如何对 Blogger 中的背景图片应用模糊效果?

javascript - chop svg 文本以适应矩形

delphi - 直接向打印机发送命令的正确方法!

javascript - 为什么我的 JS 函数没有定义,而包含该函数的文件已在页面页脚处被调用?

javascript - 通过图库网格自动播放动画

printing - 数据表:打印在Angular 9和Electron中不起作用

C - 打印数组或列表中的组合

javascript - NodeJS,不关闭mysql连接