在javascript中打印页面时显示文本框

时间:2018-05-23 10:35:10

标签: javascript html css

虽然pring文本框也会出现在打印页面中,但它看起来很糟糕。如何删除该文本框并仅显示输入的文本值。

请找到图片。我该如何解决这个问题。我只想显示我在文本框中输入的文本。请帮助我如何解决这个问题。

jsfiddle

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function PrintDiv() {
            var contents = document.getElementById("dvContents").innerHTML;
            var frame1 = document.createElement('iframe');
            frame1.name = "frame1";
            frame1.style.position = "absolute";
            frame1.style.top = "-1000000px";
            document.body.appendChild(frame1);
            var frameDoc = frame1.contentWindow ? frame1.contentWindow : frame1.contentDocument.document ? frame1.contentDocument.document : frame1.contentDocument;
            frameDoc.document.open();
            frameDoc.document.write('<html><head><title>DIV Contents</title>');
            frameDoc.document.write('</head><body>');
            frameDoc.document.write(contents);
            frameDoc.document.write('</body></html>');
            frameDoc.document.close();
            setTimeout(function () {
                window.frames["frame1"].focus();
                window.frames["frame1"].print();
                document.body.removeChild(frame1);
            }, 500);
            return false;
        }
    </script>
</head>
<body>
    <form id="form1">
    <span style="font-size: 10pt; font-weight: bold; font-family: Arial">ASPSnippets.com
        Sample page</span>
    <hr />
    <div id="dvContents" style="border: 1px dotted black; padding: 5px; width: 300px">
        <span style="font-size: 10pt; font-weight: bold; font-family: Arial">Hello,
            <br />
            This is <span style="color: #18B5F0">Mudassar Khan</span>.<br />
            Hoping that you are enjoying my articles!</span>
            <input type="text" class="input printText" value="test">
    </div>
    <br />
    <input type="button" onclick="PrintDiv();" value="Print" />
    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

在这种特定情况下,您无法在外部添加CSS,但您必须执行以下操作:

frameDoc.document.write('<style>@media print { input { border: none !important; } }</style>');

答案 1 :(得分:0)

重复How do I hide an element when printing a web page?

无论如何,

    @media print{
        .noprint{
           display:none;
           content:"Hello! No printing allowed!";
        }
    }
<html>
<head>
</head>
<body>
<div class='noprint'>
Hello! Press CTRL P!
</div>
</body>
</html>

将您不想看的所有内容放在.noprint类中,打印时不应该“显示”。

编辑:

它完全适合我。您是否真的认为我会在没有先测试的情况下发布内容?如果你遇到问题,那么也许你只是使用旧的浏览器。它受Chrome 21,Explorer 9,Firefox 3.5,Safari 4.0和Opera 9的支持。

It's working as intended for me.