我可以将所有报表HTML代码复制到剪贴板,打开一个新窗口,粘贴剪贴板数据并最终打印页面内容。
你并不需要为这个剪贴板,即使你能得到它的工作,你不应该使用剪贴板此:剪贴板是有用户的方便,不是你的,和覆盖之前的任何内容都是不恰当的。
幸运的,你可以打开一个新的窗口,并没有靠近剪贴板去任何地方设置它的内容:
function printReport(elementId)
{
var elementToPrint = $("#" + elementId),
printWin = window.open("", "Print", 'left=20,top=20,width=400,height=400');
printWin.document.write(elementToPrint.html());
printWin.document.close();
printWin.focus();
printWin.print();
printWin.close(); // optionally close the new window immediately
}
工作演示(仅适用于Chrome测试):http://jsfiddle.net/Vc5yy/
注意,显然这仅仅是一个它可以为您提供完成自己的解决方案所需的所有部分。你可能会想要应用一个合适的CSS样式表等。但主要的是,一旦你打开第二个窗口,你可以写任何你想要的,然后调用window.print()
函数。
请注意,您应该从事件处理程序(如从我的演示中所示的按钮单击)运行上述功能,或者浏览器的弹出窗口阻止程序可能不会让它打开。
所以你需要一种方法将内容复制到浏览器内的剪贴板中? – 2011-12-26 06:29:24
是的。复制HTML标签及其内容... – 2011-12-26 06:35:07
http://stackoverflow.com/questions/1539641/copy-text-to-the-clients-clipboard-using-jquery? – Fenec 2011-12-26 06:48:39