[英]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.