...

View Full Version : window.print() function



klyross
06-05-2003, 04:37 PM
Is it possible to inhibit the print dialog box from displaying when
invoking the winow.print() function?

sage45
06-05-2003, 04:43 PM
Sure there is, but it is not cross-browser compliant...

<SCRIPT LANGUAGE="JavaScript">
<!--

var da = (document.all) ? 1 : 0;
var pr = (window.print) ? 1 : 0;
var mac = (navigator.userAgent.indexOf("Mac") != -1);

function printPage(frame, arg) {
if (frame == window) {
printThis();
} else {
link = arg; // a global variable
printFrame(frame);
}
return false;
}

function printThis() {
if (pr) { // NS4, IE5
window.print();
} else if (da && !mac) { // IE4 (Windows)
vbPrintPage();
} else { // other browsers
alert("Sorry, your browser doesn't support this feature.");
}
}

function printFrame(frame) {
if (pr && da) { // IE5
frame.focus();
WebBrowser1.ExecWB(6, 6)
//use 6, 1 to prompt the print dialog or 6, 6 to omit it;
WebBrowser1.outerHTML = "";
} else if (pr) { // NS4
frame.print();
} else if (da && !mac) { // IE4 (Windows)
frame.focus();
setTimeout("vbPrintPage();", 100);
} else { // other browsers
alert("Sorry, your browser doesn't support this feature.");
}
}

if (da && !pr && !mac) with (document) {
writeln('<OBJECT ID="WB" WIDTH="0" HEIGHT="0" CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>');
writeln('<' + 'SCRIPT LANGUAGE="VBScript">');
writeln('Sub window_onunload');
writeln(' On Error Resume Next');
writeln(' Set WB = nothing');
writeln('End Sub');
writeln('Sub vbPrintPage');
writeln(' OLECMDID_PRINT = 6');
writeln(' OLECMDEXECOPT_DONTPROMPTUSER = 2');
writeln(' OLECMDEXECOPT_PROMPTUSER = 1');
writeln(' On Error Resume Next');
writeln(' WB.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER');
writeln('End Sub');
writeln('<' + '/SCRIPT>');
}

// -->
</SCRIPT>
<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</OBJECT>

HTH,

-sage-



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum