Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 15:15 Der er 18 kommentarer og
1 løsning

Spørgsmål til Print funktion

Kan man på nogen måder styrer om indholdet fra en side
skal printes horizontalt eller vertikalt på papiret
med en onLoad="print();" funktion?
Avatar billede Slettet bruger
10. oktober 2002 - 15:19 #1
Nej. Det er helt op til brugeren.
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 15:42 #2
Okay..

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>

<a href="mapzoom2.asp" onfocus="this.blur( )" onclick="NewWindow(this.href,'PictureViewer','770','440','no');return false;">
Avatar billede Slettet bruger
10. oktober 2002 - 15:57 #3
Du kan printe en anden frame således:

parent.frames["frameNavn"].focus();
parent.frames["frameNavn"].print();

Hvorfor vil du dog åbne en popup?
Avatar billede artery_graphics Nybegynder
10. oktober 2002 - 20:41 #4
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.
Avatar billede 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.
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 16:06 #6
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?
Avatar billede 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");
}
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 16:41 #8
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">
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 16:43 #9
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>
Avatar billede 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">
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 16:45 #11
mangler denne ikke i slutningen af dit script?
bla bla bla; return false;">
Avatar billede 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");
}
}
Avatar billede Slettet bruger
11. oktober 2002 - 16:46 #13
Og jo, return false er god at have med i linkets onclick.
Avatar billede 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.
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 16:50 #15
Ø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;">
}
}
Avatar billede 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;">

Ikke i scriptet.
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 17:05 #17
okay, Super!... skal lige bruge lidt tid til at få det
testet på mac.. vender tilbage senere.
Avatar billede Slettet bruger
11. oktober 2002 - 17:15 #18
Det er bare i orden.
Avatar billede artery_graphics Nybegynder
11. oktober 2002 - 17:25 #19
Det virker perfekt.
Tak for hjælpen..
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester