当用户在运行时输入值时,我必须使用JavaScript打印带有其值的文本框,但下面的代码与IE9不兼容+ textbox在div标签内
Print:function()
{
var divtoprint = document.getElementById('div1');
var popupWin = window.open('', '_blank', 'width=500,height=400');
popupWin.document.open();
popupWin.document.write('<html><body onload="window.print()">' + divtoprint.innerHTML + '</html>');
popupWin.document.close();
}
请帮忙吗?
答案 0 :(得分:1)
我改变了:
<!DOCTYPE html>
<html>
<head>
<script>
function print(){
var divtoprint = document.getElementById('main-div').innerHTML;
alert(divtoprint);
var popupWin = window.open('', '_blank', 'width=500,height=400');
popupWin.document.open();
popupWin.document.write('<html><body onload="window.print()">' + divtoprint + '</html>');
popupWin.document.close();
}
</script>
</head>
<body>
<div>
<div id="main-div">
<input type="text" name="FirstName" value="Mickey">
</div>
<input type="button" value=" Print Terms " onClick="print()">
</div>
</body>
</html>
它在ie9中工作f9,即10。
这是我的ie 10中的屏幕截图:
并且:
答案 1 :(得分:0)
IE对html有一些严格的验证。 Chrome,Firefox和其他浏览器都不那么严格。
在您的代码中,您缺少结束正文标记。 您需要使用此标记,并确保您的代码可以在IE中使用。
替换:
popupWin.document.write('<html><body onload="window.print()">' + divtoprint.innerHTML + '</html>');
人:
popupWin.document.write('<html><body onload="window.print()">' + divtoprint.innerHTML + '</body></html>');
在该行的末尾,我添加了结束标记。
答案 2 :(得分:0)
我真的怀疑说实话可以做到这一点。此外,打印网页的一种常见做法是附加一个打印样式表,在该样式表中隐藏除要打印的元素之外的所有元素。
这是一篇很好的博客文章:
print stylesheets
这是一个简单的例子:
<!DOCTYPE html>
<html>
<head>
<style media="print">
.noprint { display: none; }
</style>
</head>
<body">
<div>
<div id="main-div">
<input type="text" id="mytextbox" name="FirstName" value="Mickey"/>
</div>
<input type="button" class="noprint" value=" Print Terms " onClick="window.print()">
</div>
</body>
现在,如果您的用户在浏览器中进入“打印预览”,他们将看不到“打印”按钮(与页面上点击“打印”按钮时打印页面的方式相同)
我希望这会对你有帮助。