function CallPrint() {
var prtContent = document.getElementById('<%= pnlDelete.ClientID %>');
var winPrint = window.open('', '', 'left=0,top=0,width=800,height=600,toolbar=0,scrollbars=0,status=0');
winPrint.document.write("<h3>Summary</h3><br />" + prtContent.innerHTML);
winPrint.document.close();
winPrint.focus();
winPrint.print();
winPrint.close();
}
我需要打印div的内容。我使用上面的代码来做到这一点。它在IE中工作正常但在Firefox中没有任何作用。我在这里遗漏了一些需要在Firefox中完成的事情吗?
答案 0 :(得分:2)
我没有打开没有任何URL的新窗口,而是在窗口中打开了这个页面,并通过window.opener对象从打开的窗口访问了pnlSummary的内容 -
function CallPrint() {
var winPrint = window.open('Print.aspx', '', 'left=0,top=0,width=800,height=600,toolbar=0,scrollbars=0,status=0');
}
在Print.aspx页面上我使用了这个函数 -
function Print() {
var prtContent = "<h3>Summary</h3>" + window.opener.document.getElementById('ctl00_cphContent_pnlSummary').innerHTML;
document.getElementById("printDiv").innerHTML = prtContent;
window.print();
window.opener.focus();
window.close(); }
并在body onload上调用它。
<body onload="Print();">
<form id="form1" runat="server">
<div id="printDiv">
</div>
</form>
</body>
This在IE和Firefox中都运行良好。
答案 1 :(得分:1)
嗯......在Firefox 3.5(Windows)上,你的代码似乎对我很好。 您的pnlDelete.ClientID可能有问题吗? 您的javascript代码在页面上呈现得很好吗?
无论如何,我建议你使用jQuery +打印插件,如this。
答案 2 :(得分:1)
检查以确保您的面板有某些内容。我的猜测是prtContent
未定义
试试这个:
function CallPrint() {
var prtContent = document.getElementById('<%= pnlDelete.ClientID %>');
if (prtContent) {
var winPrint = window.open('', '', 'left=0,top=0,width=800,height=600,toolbar=0,scrollbars=0,status=0');
winPrint.document.write("<h3>Summary</h3><br />" + prtContent.innerHTML);
winPrint.document.close();
winPrint.focus();
winPrint.print();
winPrint.close();
}
else {
alert('No summary available for printing');
}
}
答案 3 :(得分:1)
您可以使用JS打印机设置https://addons.mozilla.org/en-us/firefox/addon/js-print-setup/&#34;
这是Fire fox Depended addon最有用的事情在Firefox中的网络应用程序Kisok中选择打印机
为附加的打印机和本地打印机添加了一些示例,它可以帮助您在没有打印对话框的情况下进行构建。
function EB_Print(printType) {
try{
var printerType = printType; // type of the Print Code : network
// Default Printer Configuring
var Default_printer = "Canon MG2500 series";
/** local Printer configuring via Network
** Config teh Local server use \\\\ to get \\
**/
var Organizer_Printer = "\\\\network\\Canon LBP2900";
jsPrintSetup.setPrinter(Default_printer);
jsPrintSetup.setSilentPrint(true);// withoud dialog
/** alert(jsPrintSetup.getPrintersList()); // Debugger for the attached Printers list
alert(jsPrintSetup.getPrinter()); // get the set printer Option
**/
// id network is selected It will print the page in network
if(printerType == 'network'){
jsPrintSetup.setPrinter(Organizer_Printer);
}
jsPrintSetup.print(); // Print the page
}catch (e) {
// TODO: handle exception
}
}
&#13;
答案 4 :(得分:0)
你可以试试一个jquery插件......