1

问题:

当我选择打印按钮时,此代码将起作用,并在选择打印后弹出打印,它工作正常。

问题是,如果我选择 Windows 打印选项的取消按钮,并且如果我要打印新页面,那么它会显示已取消的页面,而不是页面。


打印屏幕截图

问题

是否有任何选项可以清除或删除我在这一行中写的内容 win.document.write(inf);

代码

这是代码,它将始终显示haiiiiii在打印预览中,无法更新该文本字段。

脚本:

function displayMessage(printContent) {     
    var inf = printContent;
    document.innerHTML="";
    win = window.open('about:blank');
    win.document.write(inf);
    win.print();
    win.close();
    alert(inf);
} 

HTML

<div id="formdiv">
    <form id="form1" name="form1" method="post" action="">
        <div id="printadform">
            <table width="997" border="1">
                <tr>
                    <th colspan="4" bgcolor="#999999"><div align="center" class="style1"><input type ="text" value="haiiiiiii"/></div></th>
                </tr>
            </table>
        </div>
    </form>
</div>
 
<a class="btn btn-primary" id = "print" onclick="displayMessage(formdiv.innerHTML)">Print</a>
<a href="#/branch/list/{{student.branch}}" class="btn" id="cancel">Cancel </a></div>
4

1 回答 1

1

试试这个,Text 元素没有innerHTML属性,所以你必须设置字段的值。

html:

<div id="formdiv">
    <form id="form1" name="form1" method="post" action="#">
        <div id="printadform">
            <table style="width:80%;border: 1px solid black;">
                <tr>
                    <th colspan="4" style="background-color:#999;">
                        <span style="text-align:center;">
                            <input id="box" type="text" value="Hai" />
                        </span>
                    </th>
                </tr>
            </table>
        </div>
    </form>
</div>

脚本:

function displayMessage() {    
    var val = box.value; //get the input box value
    box.setAttribute('value', val); //set value attribute into input
    var inf = formdiv.innerHTML;
    document.innerHTML = "";
    var win = window.open('about:blank');
    win.document.write(inf);
    win.print();
    win.close();
}

Demo

于 2013-11-15T02:37:09.543 回答