你有这样的script
var divToPrint=document.getElementById('div1Id');
if (divToPrint != null && divToPrint != "") {
var newWin=window.open('','Print-Window');
newWin.document.open();
newWin.document.write('<html><body onload="window.print()">'+divToPrint.innerHTML+'</body></html>');
newWin.document.close();
newWin.close();
}
,你复制的内部HTML,但是,值不那里。让我们确保这些值是正确的,如下所示:
var divToPrint=document.getElementById('div1Id');
//Gather input values and inputs
var inputValues = [];
var inputs = divToPrint.getElementsByTagName("input");
for (var index = 0; index < inputs.length; index++) inputValues.push(inputs[index]);
//Generate script of page
var script = 'var inputValues = ' + JSON.stringify(inputValues) + ';';
script += 'var inputs = document.getElementsByTagName("input");' +
'for (var index = 0; index < inputs.length; index++) ' +
'inputs[index].value = inputValues[index];';
if (divToPrint != null && divToPrint != "") {
var newWin=window.open('','Print-Window');
newWin.document.open();
newWin.document.write('<html><body onload="' + script + 'window.print()">'+divToPrint.innerHTML+'</body></html>');
newWin.document.close();
newWin.close();
}
代码未经测试,请让我知道是否有错字。
'divToPrint.innerHTML'应该是'divToPrint.value',因为您想从该输入中获得实际值 – Jer
输入文本字段没有'innerHTML'属性,您应该使用'.value'获取输入文本值 –
注意:'divToPrint'永远不会等于一个字符串,('!=“”'),因为它是对'getElementById'的调用的结果,它返回一个元素或null。你的条件可以简单地为'if(divToPrint){'。 – Utkanos