Kan jeg i stedet printe indholdet af en frame ud ved at klikke på et printikon i en modtstående frame med onLoad="print();" funktion? Bemærk at siden der skal printes, kan være forskellige sider men altid fra den samme frame. Kunne man evt. med asp trække sidens titel "navn-på-side-der-skal-printes.asp" ind i printscriptet?
Altså sådan her: Klikkes printikon i FRAME1 åbnes et popvindue med nedenstående script, og viser den side i vinduet, der netop nu samtidig vises i FRAME2... og aktiverer "print();" funktionen.
<script language="JavaScript">
<!-- Begin function NewWindow(mypage, myname, w, h, scroll) { var winl = (screen.width - w) / 2; var wint = (screen.height - h) / 2; winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+'' win = window.open(mypage, myname, winprops+',toolbar=yes'); if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); } } // End --> </script>
Faktisk ville jeg bruge popup vinduet pga. at IE på mac ikke understøtter print(); funktion. Som du kan se sættes toolbar til YES i popup vinduet, hvilket gør at man på mac så blot her kan klikke det standard printerikon fra toolbaren.
Men kan dit svar modificeres til at understøtte MAC? Det virker nemlig fint efter hensigter. Uden at jeg gør brug af popup vinduet som du spørger til.
Synes godt om
Slettet bruger
11. oktober 2002 - 15:54#5
Du kan jo bare lave et browsercheck. Hvis brugeren kører med Mac eller IE4 (som ikke understøtter window.print()), åbner du et vindue med toolbar, hvis ikke bruger du min metode.
Hvordan sætter jeg et sådan check? Og skal det ligge på den side med printikon der vises i den første frame? Og hvordan så med at linke til den anden frame og åbne denne indholde (siden) i popud vinduet?
Synes godt om
Slettet bruger
11. oktober 2002 - 16:27#7
Tja, dette burde virke:
function udskriv() { if (window.print) { parent.frames["frameNavn"].focus(); parent.frames["frameNavn"].print(); } else window.open(parent.frames["frameNavn"].location.href, "printVindue", "toolbar=yes"); }
Okay.. men hvad er der så galdt her, efter jeg har sat det ind?
<a href="#" onfocus="this.blur( )" onMouseOver="ms('img11', 'on')" onMouseOut="ms('img11', 'off')" onClick="ms('img11', 'fix'); alert('Please notice that the page has to be printed in landscape format to fit the paper properly.'); function udskriv() {if (window.print) {parent.frames["midt"].focus();parent.frames["midt"].print();}elsewindow.open(parent.frames["midt"].location.href, "printVindue", "toolbar=yes");}"> <img name="img11" src="../images/menuimages/print.gif" border="0" width="32" height="26"><img border="0" src="../images/adjust.gif" width="10" height="26">
Og kan det kombineres med dette script, så popup vinduet centreres med toolbar synlig?
<script language="JavaScript">
<!-- Begin function NewWindow(mypage, myname, w, h, scroll) { var winl = (screen.width - w) / 2; var wint = (screen.height - h) / 2; winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+'' win = window.open(mypage, myname, winprops+',toolbar=yes'); if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); } } // End --> </script>
Synes godt om
Slettet bruger
11. oktober 2002 - 16:44#10
Du må ikke sætte det ind i linket!
Sæt dette ind i head:
<script> function udskriv() { if (window.print) { parent.frames["midt"].focus(); parent.frames["midt"].print(); } else window.open(parent.frames["midt"].location.href, "printVindue", "toolbar=yes"); } </script>
Dit link skal være sådan her:
<a href="#" onfocus="this.blur( )" onMouseOver="ms('img11', 'on')" onMouseOut="ms('img11', 'off')" onClick="ms('img11', 'fix'); alert('Please notice that the page has to be printed in landscape format to fit the paper properly.'); udskriv();"> <img name="img11" src="../images/menuimages/print.gif" border="0" width="32" height="26"><img border="0" src="../images/adjust.gif" width="10" height="26">
mangler denne ikke i slutningen af dit script? bla bla bla; return false;">
Synes godt om
Slettet bruger
11. oktober 2002 - 16:46#12
Ja:
function udskriv() { if (window.print) { parent.frames["midt"].focus(); parent.frames["midt"].print(); } else { l = (screen.width - 300) / 2; t = (screen.height - 300) / 2; window.open(parent.frames["midt"].location.href, "printVindue", "width=300,height=300,left=" + l + ",top=" + t + ",toolbar=yes"); } }
Synes godt om
Slettet bruger
11. oktober 2002 - 16:46#13
Og jo, return false er god at have med i linkets onclick.
Synes godt om
Slettet bruger
11. oktober 2002 - 16:48#14
Dette skal lige med i scriptet:
window.open(parent.frames["midt"].location.href, "printVindue", "width=300,height=300,left=" + l + ",top=" + t + ",screenX=" + l + ",screenY=" + t + ",toolbar=yes");
Det skal ind i stedet for den tidligere window.open-sætning.
Øh.. men men mit popup script styrer jo selv skærm højde og bredde efter opløsning, gør dei det hvis du sætter de faste mål på 300?
Og er det så sådan med den return false?
function udskriv() { if (window.print) { parent.frames["midt"].focus(); parent.frames["midt"].print(); } else { l = (screen.width - 300) / 2; t = (screen.height - 300) / 2; window.open(parent.frames["midt"].location.href, "printVindue", "width=300,height=300,left=" + l + ",top=" + t + ",toolbar=yes"); return false;"> } }
Synes godt om
Slettet bruger
11. oktober 2002 - 16:53#16
Ja, den er automatisk. Du skal bare huske selv at definere bredde og højde i scriptet. Så 300 og 300 skal skiftes ud med dimensionerne på dit vindue.
Og nej, return false skal lægges i linket:
<a href="#" onfocus="this.blur( )" onMouseOver="ms('img11', 'on')" onMouseOut="ms('img11', 'off')" onClick="ms('img11', 'fix'); alert('Please notice that the page has to be printed in landscape format to fit the paper properly.'); udskriv(); return false;">
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.