Window.print问题
这里是我的问题我有一个代码实现window.print,但问题是当我关闭窗口打印并返回到我的页面我的打印按钮不再工作。
$(function(){
$('#button1').click(function()
{
$('head').append('<link rel="stylesheet" href="<?php echo base_url() ?>assets/weekly/style/weekly.css" type="text/css"/>');
var printContents = document.getElementById('data').innerHTML;
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
//window.location = document.body.innerHTML;
//location.reload();
});
});
但是,当我添加location.reload()
(请参阅我的评论)时,打印按钮再次工作,但它加载了以前的数据而不是当前的数据,这就是为什么我不想使用location.reload()
。 有其他解决方案或方法来解决我的问题吗?
你应该真的使用特定于打印的CSS样式表,但是如果你想以这种方式实现你的目标,也许这会更好:
$(function(){
$('#button1').click(function(){
$('head').append('<link rel="stylesheet" href="<?php echo base_url() ?>assets/weekly/style/weekly.css" type="text/css"/>');
var printContents = $( $('#data').html() );
var originalContents = $('body > *').hide();
$('body').append( printContents );
window.print();
printContents.remove();
originalContents.show();
});
});
使用'data'元素的innerHTML创建一个新元素。 隐藏身体标记的所有孩子。 将新元素附加到body标签。 打印。 删除新元素。 再次显示原始内容。
这仍然是一团糟,但你不应该失去你的事件。
我修正了一个类似的问题,只打开一个新窗口,只显示我想打印的内容,如下所示:
function printPage(htmlstring){
var boiler = "put any styling or js scripts here to make it look right";
boiler += "<div id='print-page-content'>n</div>n";
var PrintWindow = window.open("","newwin", height=600, width=800, toolbar=no, menubar=no");
PrintWindow.document.write(boiler);
$(PrintWindow.document).find("#print-page-content").append(htmlstring);
$(PrintWindow).ready(function(){
PrintWindow.print();
});
}
然后通过以下方式调用它:
printPage(document.body.innerHTML);
非常感谢所有答案和答复人。 我真的很感激。 我只想补充这个答案来自我的朋友。
首先在按钮上添加onlick =“window.print()”
<p><img src="images/printButton.gif" id="button1" width="100" height="75" onclick="window.print()"></p>
然后添加像这样的CSS样式
<link href = 'css/print.css' rel = 'stylesheet' style = 'text/css' MEDIA="print, handheld"/>
不要忘了MEDIA =“print,handheld”
链接地址: http://www.djcxy.com/p/14491.html上一篇: Window.print Issues