Avatar billede syswatch Novice
11. juni 2008 - 14:01 Der er 22 kommentarer og
1 løsning

print funktion til print af popup vindue

Jeg har rodet mig ud i noget javascript, selv om jeg ikke har så meget styr på det.
Har fået bikset denne kode sammen, men windows print vinduet kommer ikke frem, hvad er galt ?

<script language="javascript" type="text/javascript">
<!--
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
win=window.open(mypage,myname,settings);}
NewWindow.document.close();
NewWindow.focus();
NewWindow.print();
NewWindow.close();
</script>
----------------------------------------
<a href="samh_print.php" onclick="NewWindow(this.href,'Print af samhandelsaftale','566','900','yes','center');return false" onfocus="this.blur()">YourLinkText</a>
Avatar billede w13 Novice
11. juni 2008 - 14:04 #1
NewWindow.document.close();
NewWindow.focus();
NewWindow.print();
NewWindow.close();

skal vel være:

win.document.close();
win.focus();
win.print();
win.close();
Avatar billede w13 Novice
11. juni 2008 - 14:04 #2
:)
Avatar billede syswatch Novice
11. juni 2008 - 14:14 #3
Hmm... det ser heller ikke rigtig ud til at virke.
I firefox kommer popup vinduet fint frem, men print boxen kommer ikke frem.
I IE 6 kommer den med en javascript fejl: win.document er null eller ikke et object.
Har ikke lige IE7 så kan ikke lige teste i den.
Avatar billede syswatch Novice
11. juni 2008 - 14:21 #4
Nu fandt jeg selv lige den ene fejl:

win=window.open(mypage,myname,settings);}
NewWindow.document.close();
NewWindow.focus();
NewWindow.print();
NewWindow.close();

Skulle være:
win=window.open(mypage,myname,settings);
NewWindow.document.close();
NewWindow.focus();
NewWindow.print();
NewWindow.close();
}

Så nu virker det i Firefox, men IE6 melder stadig fejl... hvordan kan det være ?
Avatar billede syswatch Novice
11. juni 2008 - 14:23 #5
Ups, det var dette jeg mente....
Nu fandt jeg selv lige den ene fejl:

win=window.open(mypage,myname,settings);}
win.document.close();
win.focus();
win.print();
win.close();

Skulle være:
win=window.open(mypage,myname,settings);
win.document.close();
win.focus();
win.print();
win.close();
}
Så nu virker det i Firefox, men IE6 melder stadig fejl... hvordan kan det være ?
Avatar billede w13 Novice
11. juni 2008 - 14:23 #6
Så skal linjerne:

win.close();
win.focus();
win.print();
win.close();

jo også flyttes med ind i funktionen.
Avatar billede w13 Novice
11. juni 2008 - 14:24 #7
Hmm..

Den første:

win.close();

skal nok væk :)

Ellers lukkes vinduet jo inden der fokuseres og printes.
Avatar billede syswatch Novice
11. juni 2008 - 14:26 #8
Nej, firefox er heller ikke helt tilfreds.
Når man trykker på OK til print, skriver den:

Siden blev erstattet mens du prøvede at udskrive, prøv venligst igen.

????? Hvad betyder det så ?
Avatar billede w13 Novice
11. juni 2008 - 14:30 #9
Hvordan ser print-linket/print-knappen ud, altså dens kode?
Avatar billede syswatch Novice
11. juni 2008 - 14:34 #10
Den ser sådan her ud:

<a href="samh_print.php" onclick="NewWindow(this.href,'Print af samhandelsaftale','566','900','yes','center');return false" onfocus="this.blur()">YourLinkText</a>
Avatar billede w13 Novice
11. juni 2008 - 14:35 #11
Prøv at rette til:

<a href="java script:void(0)" onclick="NewWindow('samh_print.php,'Print af samhandelsaftale','566','900','yes','center')" onfocus="this.blur()">YourLinkText</a>
Avatar billede syswatch Novice
11. juni 2008 - 14:38 #12
Så vil den slet ikke åbne vinduet.... Der sker ingenting når man klikker.
Avatar billede w13 Novice
11. juni 2008 - 14:47 #13
Hov, jeg manglede en apostrof:

<a href="java script:void(0)" onclick="NewWindow('samh_print.php','Print af samhandelsaftale','566','900','yes','center')" onfocus="this.blur()">YourLinkText</a>
Avatar billede syswatch Novice
11. juni 2008 - 14:50 #14
Det er samme fejlmeddelse... :
Siden blev erstattet mens du prøvede at udskrive, prøv venligst igen.
Avatar billede w13 Novice
11. juni 2008 - 14:51 #15
Har du fjernet win.document.close(); ?
Avatar billede w13 Novice
11. juni 2008 - 14:56 #16
Ellers er det klart.

Med:
win.document.close();
win.focus();
win.print();
win.close();
vil vinduet prøve at lukke, inden du printer.
Avatar billede syswatch Novice
11. juni 2008 - 15:01 #17
Ja, den er fjernet....Her er hele min kode nu:
<script language="javascript" type="text/javascript">
<!--
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
win=window.open(mypage,myname,settings);
win.focus();
win.print();
win.close();
}
</script>
-------------------------------
<a href="java script:void(0)" onclick="NewWindow('samh_print.php','Print af samhandelsaftale','566','900','yes','center')" onfocus="this.blur()">YourLinkText</a>
Avatar billede w13 Novice
11. juni 2008 - 15:11 #18
For mig virker det fint i FF!

I Internet Explorer skal du rette "Print af samhandelsaftale" til f.eks. bare "samhandelsaftale".
Dette må nemlig ikke indeholde mellemrum!
Avatar billede syswatch Novice
11. juni 2008 - 15:16 #19
Virker altså ikke her ved mig, og heller ikke ved min kollega med en Mac og FF.
Avatar billede w13 Novice
11. juni 2008 - 15:18 #20
Dette her fungerer bare hos mig:

<html>
<head>
<body>

<script language="javascript" type="text/javascript">
<!--
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
win=window.open(mypage,myname,settings);
win.focus();
win.print();
win.close();
}
</script>

<a href="java script:void(0)" onclick="NewWindow('samh_print.htm','samhandelsaftale','566','900','yes','center')" onfocus="this.blur()">YourLinkText</a>

Jeg sidder dog ved en PC.
Avatar billede w13 Novice
11. juni 2008 - 15:18 #21
Virker også i Safari.
Avatar billede syswatch Novice
11. juni 2008 - 15:36 #22
Det fatter jeg bare ikke... Sidder også ved en PC, og har lige kopieret din kode, og testet, får samme fejl.
Men går jeg over på en anden maskine der kører Vista fx. så virker det...
(Jeg sidder ved en XP maskine.)
Avatar billede w13 Novice
11. juni 2008 - 15:39 #23
Ok. Så må du se, hvilken javascript-fejl, browseren giver dig.
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