Avatar billede j1z Nybegynder
21. august 2001 - 17:50 Der er 12 kommentarer og
1 løsning

Printe en anden side uden den vises ?

Jeg har lavet en printervenlig knap - når man trykker på den kommer man over på en printervenlig side hvor dette script ligger:

<script language=\"JavaScript\">
function StartPrint()
{
window.print();
}             
</script>

Men kan jeg ikke i stedet lave en funktion, så når man trykker på min printer knap - så printer den den givne angivne fil ud UDEN at man skal være på den side der skal printes ??

//j1z
Avatar billede prodic Mester
21. august 2001 - 17:53 #1
Du kan gøre det ved, at lave en skjult frame :

<frameset rows=\"100%,*\">
<frame src=\"controlpage.html\">
<frame src=\"pagetoprint.html\">
</frameset>

og så angive indholdet Controlpage.html således :

<script language=\"JavaScript\"><!--
if (window.print)
    document.write(\'<form><input type=\"button\" value=\"Print\" onClick=\"parent.frames[1].print()\"><\\/form>\');
//--></script>

Avatar billede roenving Novice
21. august 2001 - 18:01 #2
Så var det jo lige, at der var en klog mand, som forleden sagde, at hvis man kalder print()-metoden, så vil den printe den ramme, som havde fokus, så jeg ville gøre:

<frameset rows=\"100%,*\">
<frame name=\"dinSide\" src=\"dinSide.html\">
<frame name=\"printSide\" src=\"printSide.html\">
</frameset>

og så lave en knap på dinSide.html således :

<input type=\"button\" value=\"Print\" onClick=\"top.frames[\'printSide\'].focus();top.frames[\'printSide\'].print();top.frames[\'dinSide\'].focus();\">

>>prodic
j1z ber jo ikke om en print redirect -- din metode vil vel også slette dokumentets indhold ??

hth
jes
Avatar billede j1z Nybegynder
21. august 2001 - 18:01 #3
Kan det ikke laves på en anden måde ?

Jeg er ikke så glad for at lege med frames :(

//j1z
Avatar billede roenving Novice
21. august 2001 - 18:09 #4
Hvis du ikke har andre frames, kan det vel ikke betyde noget ?·]

Men, browseren er nødt til at vise en side, hvis den skal printes, så egentlig er svaret til dit sidste spørgsmål vel Nej !-|

Og hvor tit skal muligheden være til stede ??

Den måde at bruge frames, som prodic angiver er helt ufarlig -- du kan jo bare, som jeg angiver det kaste din almindelige side ind i den synlige frame -- så tror jeg ik\' lige, der er nogen der ser det -- heller ikke dig i din kode!!

jes
Avatar billede prodic Mester
21. august 2001 - 18:10 #5
Roenving->Slette indholdet - forhåbentligt ikke da, men JS er nok mere din hjemmebane end min.
Så du kan da godt risikere at have ret.
Men din metode skulle da også gerne virke.


j1z->Ikke hvad jeg ved af..beklager.
Avatar billede prodic Mester
21. august 2001 - 18:13 #6
Roenving->Med slette mener du så overskrive, for så har du da ganske ret.
Men du har jo selv givet løsningen til hvordan det ellers skulle laves hvis det ikke skal overskrive indholdet
Avatar billede j1z Nybegynder
21. august 2001 - 18:14 #7
Ok - takker begge to :)

Smutter hjem og \'leger\' med det - så kan jeg melde tilbage i morgen ...

thx.j1z
Avatar billede roenving Novice
21. august 2001 - 18:17 #8
Bueno =;-}
Avatar billede j1z Nybegynder
23. august 2001 - 12:33 #9
Så har jeg rodet med jeres forslag (brugt roenvings kode) - det skal lige nævnes at man ikke skal kalde sin print side for print !! Det tog mig lidt tid at finde ud af det :)

Men nu virker det som det skal, nææsten !!

Selv print delen er fino - man ser ikke siden, og den bliver printet fint ud, men når man  så forlader siden - så er man stadig inde i framesettet ? Det skal man ikke være !!

Ps. jeg har en del asp elementer på mine sider - findes der ikke en bedre løsning i asp ??

//j1z
Avatar billede roenving Novice
23. august 2001 - 12:42 #10
Hvordan forlader du siden ?
Hvis du gør f.eks. gør det med location-links, kan du ændre dem til top.location, eller kan du sætte en <base target=\"_top\"> i headeren.

hth
Avatar billede j1z Nybegynder
23. august 2001 - 12:47 #11
Det er ganske almindelige links - men de ligger i en asp include, så jeg kan ikke tilføje dem noget (med mindre det ikke påvirker de andre sider hvor der ikke er framesets på) ?
Avatar billede roenving Novice
23. august 2001 - 14:30 #12
Ja, men du skriver dem vel ind i nogle <A>\'er eller laver nogle javascript-links.

Prøv med <base target=\"_top\"> i <HEAD>-sektionen af din almindelige side.

Det skulle altid redirigere et link til top-window\'et som er lig med browser-vinduet, altså springer det ud af Framesettet
Avatar billede j1z Nybegynder
23. august 2001 - 17:42 #13
Ok...

Men nu har jeg fået en bedre løsning. Med lidt asp og en iframe behøver jeg slet ikke at have TO sider !!

Du løsning er nu ellers også meget god - så du får points :)
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