在javascript中从windows.print()获取以前的值

时间:2013-11-14 06:01:55

标签: javascript

问题:

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

问题是,如果我选择Windows打印选项的取消按钮,如果我要打印新页面,那么它显示已取消页面,而不是新< / strong>一个。


Print Screen Screenshot

问题

  

有没有选项可以清除或删除我在此行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>

1 个答案:

答案 0 :(得分: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