Javascript Print Button

They have: 24 posts

Joined: Jan 2000

Does anyone know of a script which when a button is clicked, it prints the contents of another frame?

------------------
Ben Minton

The internet graphics place

Get paid $20 - $160 an hour for viewing adverts

They have: 268 posts

Joined: May 1999

Here is the script I use.

<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();
window.print();
link.focus();
} else if (pr) { // NS4
frame.print();
} else if (da && !mac) { // IE4 (Windows)
frame.focus();
setTimeout("vbPrintPage(); link.focus();", 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>

You need to name your frame and then use the following format to print

<A HREF="#" onClick="return printPage(parent.tpform, this)">

where tpform is the name of the frame you want to print.

Hope this helps.

By the way IE users will still get the dialog box that ask them if they want to print the frame, whole page etc. The script shifts the focus so they have to accept the default of frame.

------------------
My goal in life is found in Phillipians 4:8-9

My goal in life is found in Phillipians 4:8-9
shoutingrock.org/troop214

Want to join the discussion? Create an account or log in if you already have one. Joining is fast, free and painless! We’ll even whisk you back here when you’ve finished.