仅打印Div内容而不会丢失其他功能

时间:2016-09-29 01:40:30

标签: javascript java html jsp jstl

我有一个页面,我必须只打印div内容,这个内容是动态的,会根据下拉值而有所不同。现在,我想打印这个内容,我能够成功地使用

function printDiv(divId){
    var orginalPage= document.body.innerHTML;
    var printDiv= document.getElementById(divId).innerHTML;
    document.body.innerHTML = printDiv;
    window.print();
    document.body.innerHTML = orginalPage;
}

但我的问题是,当我完成打印div并返回到实际页面时,下拉值正在重置为默认值。我希望该值与在打印div之前选择的值相同。例如,我从下拉列表中选择“xyz”然后在打印我的div内容之后我希望默认选择xyz。

我将迭代此下拉选项的列表。像这样的东西

<select id="reason" >
<logic:iterate id="hs" name="hslist" type="hsData">
<option value="">select a reason </option>
<option value="<bean write name='hs' property='hsReasonId'/>">
<bean write name="hs" property="hsReasonDesc"/></option>
</logic>
</select>

有人可以帮忙解决这个问题......

3 个答案:

答案 0 :(得分:0)

您可以使用select元素的selected属性来设置默认值

答案 1 :(得分:0)

您可以通过一个小的更改来解决。因为您想打开一个额外的窗口并在要打印的窗口中指定html。

function printDiv(divId){
var printDiv= document.getElementById(divId).innerHTML;
var myWindow = window.open("", "", "width=800,height=500");
myWindow.document.write(printDiv);
myWindow.print();
}

答案 2 :(得分:-1)

当您将innerHTML分配回正文时,您选择的值将更早丢失。首先尝试打印body的innerHTML。我想你将能够找出为什么你的下拉没有填充回来。