在这个波纹管程序中,如果单击“PRINT”,html内容将被添加到名为b.html的新弹出窗口中。它运行正常,但b.html有一些html内容,当新的弹出窗口打开时我丢失了这些数据。在没有遗漏b.html的html内容的情况下,我如何在其中添加新的html内容。
我的示例代码:
网页名称:a.html
<html>
<head>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"> </script>
<script type="text/javascript">
$(document).ready(function()
{
$("#print").click(function()
{
var newWind=window.open('b.html', 'Print message',"left=100,screenX=200,menubar=yes, width=980,height=500, location=yes,resizable=yes,scrollbars=yes,status=yes");
var printableHTML=$("#msg").html();
newWind.document.write(printableHTML);
//newWind.append(printableHTML);
});
});
</script>
</head>
<body>
<span id="print"><u>PRINT</u></span>
<div id="msg">
<h4> I am printing this message...</h4>
</div>
</body>
</html>
页面名称:b.html
<html>
<head> </head>
<body>
<h4>Hello</h4>
<div id="target"></div>
</body>
</html>
答案 0 :(得分:1)
在页面加载后使用document.write
,您将替换文档。
使用窗口的加载事件,以便在加载文档后可以访问该文档的内容:
$(newWind).load(function() {
$('#target', newWind.document).html(printableHTML);
});
答案 1 :(得分:0)
不是弹出一个新窗口并使用您想要打印的位填充它,更好的解决方案是打印为标准window.print()
并使用打印介质样式表来显示/隐藏部分您想要打印的页面。
@media print {
/* style sheet for print goes here */
}
答案 2 :(得分:0)
更改
var newWind=window.open('b.html', 'Print message', ...
到
window.open('b.html', 'Print_message', ...
然后你可以做
Print_message.document.write(printableHTML);