[英]How to print content of textbox in IE9 in javascript
当用户在运行时输入值时,我必须使用JavaScript打印一个带有其值的文本框,但以下代码与IE9 +文本框不兼容,该文本框位于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();
}
请你帮忙
我变了 :
<!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,ie10中可以使用f9。
这是我ie 10中的屏幕截图:
和这个:
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>');
在该行的末尾,我添加了结束标记。
我真的怀疑这是否可以做到诚实。 此外,打印网页的一种常见做法是附加样式表以进行打印,其中隐藏了所有要打印的元素,但隐藏了所有元素。
这是一篇不错的博客文章:
打印样式表
这是一个简单的示例:
<!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>
现在,如果您的用户在浏览器中转到“打印预览”,他们将不会看到“打印”按钮(与单击页面上的“打印”按钮时打印页面的方式相同)
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.