Avatar billede felixcat Nybegynder
24. juni 2004 - 18:20 Der er 26 kommentarer og
2 løsninger

Popup med udprint

Hvordan kan man lave det således at ens indhold på en side, kommer i en mere printervenlig udgave, ved tryk på et link.

noget i stil med med http://www.berlingske.dk/udland/artikel:aid=455436/#


på forhånd tak
Avatar billede gryn Nybegynder
24. juni 2004 - 18:33 #1
Du åbner bare et nyt dokument i et pop-up vindue, hvor du ikke har menustruktur osv. medtaget. Dette gøres således:

Placer i HEAD:

<script language="javascript">
function aaben(addr){
var dspl=window.open(addr,'small','width=500,height=550,resizable=1,status=0,scrollbars=1')
}
</script>


her er en link-kode, som åbner:

<a href="#" onclick="aaben('PrinterVenligSide.html');return false">Printervenlig side</a>



Du kan eventuelt indsætte dette i BODY-tagget på den printervenlige side:

<body onload="print()">


Så kommer printer-egenskaberne frem
Avatar billede goose Nybegynder
24. juni 2004 - 20:26 #2
hvorfor ikke blot lave en css fil der bliver brugt ved udprintning hvor man så har skjult de elementer man ikke vil have printet ud:

<LINK REL="stylesheet" HREF="style.css" TYPE="text/css">
<LINK REL="stylesheet" HREF="print.css" TYPE="text/css" media="print">

/Goose
Avatar billede mm12010 Nybegynder
24. juni 2004 - 20:49 #3
Avatar billede felixcat Nybegynder
25. juni 2004 - 00:10 #4
Jeg vil gerne have man kan se hvad man printer ud og ikke bare starte udprintningen.
Herefter kan jeg style det med et stylesheet. Kan det lade sig gøre.
altså ligesom mit http://www.berlingske.dk/udland/artikel:aid=455436/#
Avatar billede gryn Nybegynder
25. juni 2004 - 15:10 #5
svaret fra goose og mit svar kan snilt forenes.
Avatar billede felixcat Nybegynder
25. juni 2004 - 15:17 #6
Hej gryn
Så skal jeg have to udgaver af hver side. Eller hvad?
Kan man ikke lave noget i stil med http://www.eksperten.dk/spm/454945 og derefter angive hvilke divs der skal med over i et popupvindue. Her skal man kunne vælge print og luk vindue

på forhånd tak
Avatar billede gryn Nybegynder
25. juni 2004 - 15:56 #7
tjoo... men det er en lidt omstændig måde at håndtere det på.
Henter du din tekst fra en database? For så bliver det noget nemmere.
Avatar billede felixcat Nybegynder
25. juni 2004 - 15:59 #8
Nej desværre ikke - men er der ikke noget der hedder geturl eller i den stil.
Avatar billede gryn Nybegynder
25. juni 2004 - 16:05 #9
Jeg skal lige ud og handle og derefter lave mad.
Hvis ikke andre har svaret når jeg er færdig, så skal jeg nok bikse et eller andet sammen.
Avatar billede felixcat Nybegynder
25. juni 2004 - 16:08 #10
Det er super
På forhånd tak
Avatar billede felixcat Nybegynder
25. juni 2004 - 17:56 #11
Jeg har nu proppet teksten i en database. (pyhha).
Kan det hjælpe
Avatar billede gryn Nybegynder
25. juni 2004 - 18:49 #12
Ja det kan det da!

Jeg bliver lige nødt til at vide hvilken type database (mySQL/Access) vi taler om, og hvilke(t) serverside sprog (PHP/ASP), du har mulighed for at benytte dig af på din server.
Avatar billede gryn Nybegynder
25. juni 2004 - 19:15 #13
OK. Nu har jeg lavet et lille eksempel på hvordan det kan løses. Der er tale om 3 filer:

DinSiden.html
almindelig.css
printervenlig.css

____________________________________________________
DinSiden.html:


<html>
<head>
<title>pris</title>

<script language="javascript">
function aaben(){
var dspl=window.open(window.location.href + '?print=ja','printerside','width=500,height=550,resizable=1,status=0,scrollbars=1')
}


if (window.location.href.substr((window.location.href.length - 2),2)=="ja"){
document.write('<LINK REL="stylesheet" HREF="printervenlig.css" TYPE="text/css">')
}
else {
document.write('<LINK REL="stylesheet" HREF="almindelig.css" TYPE="text/css">')
}

</script>

</head>
<body>


<div id="popupknap">
<a href="#" onclick="aaben();return false">Printervenlig side</a>
</div>
<div id="printogluk">
<a href="#" onclick="window.close();return false">Luk</a><br><br>
<a href="#" onclick="window.print();return false">Udskriv</a><br><br>

</div>
<div id="menu">
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp; <br>
</div>
<div id="indhold">
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
</div>

</body>
</html>


__________________________________________________
almindelig.css:


div#indhold{
width:450px;
background-color:#CCCCCC;
}
div#menu{
background-color:#FFCCCC;
}
div#popupknap{
background-color:#CCFFCC;
}
div#printogluk{
background-color:#CCCCFF;
visibility:hidden;
}


________________________________________________________
printervenlig.css:


div#indhold{
width:450px;
background-color:#CCCCCC;
}
div#menu{
background-color:#FFCCCC;
visibility:hidden;
}
div#popupknap{
background-color:#CCFFCC;
visibility:hidden;
}
div#printogluk{
background-color:#CCCCFF;
}

_________________________________________________________


Jeg håber, du kan bruge princippet i det og overføre det til din egen side. Prøv selv at lave de sider, som jeg har beskrevet. Så er det lettere at forstå. Ellers må du bare spørge.
Avatar billede felixcat Nybegynder
25. juni 2004 - 22:01 #14
Det driller noget - er det ikke muligt at poste et enkelt div  - eks div#indhold - til et popupvindue.
Det er nemlig ikke alt som styres af stylesheet. eks så har jeg nogle billeder som også kommer med selvom jeg bruger display: none
Eller måske gøre brug af min database . jeg bruger access og asp - men er nybegynder
Avatar billede gryn Nybegynder
25. juni 2004 - 22:15 #15
Det er også en mulighed. Jeg har ikke lige tid til at arbejde videre med det i dag, men jeg vil gerne kigge på det i løbet af i morgen.

Vil du så ikke i mellemtiden beskrive din databasetabel + evt. poste et link til den side, det drejer sig om.

/gryn
Avatar billede felixcat Nybegynder
26. juni 2004 - 09:33 #16
Jeg har kun mit website lokalt så jeg har ingen url at vise dig. Men jeg har lavet databasen i access2000.
Men databasen er lavet med følgende felter: id (som er nøgle, autonummereret), dato, overskrift, tekst, forfatter og link. For hver menupunkt (menuer er dropdown) jeg har er der en tabel som svarer dertil. dvs jeg har et menupunkt der hedder eks. profil så har jeg en tabel som er opbygget som ovenstående. Det er ikke en relationdatabase
Det er feltet tekst jeg skal have vist. Måske kan disse oplysninger være behjælpelig.
eller måske skal databasen opbygges på en anden måde.
Og Gryn tak for din store indsats. Det er dog fantastisk at du gider det.
MVH
Felixcat
Avatar billede felixcat Nybegynder
26. juni 2004 - 09:35 #17
Jeg kaster lige lidt flere point ind i det
Avatar billede gryn Nybegynder
26. juni 2004 - 11:11 #18
Godmorgen

Har du en server/webhotel, der kan køre ASP m. Access?
Avatar billede felixcat Nybegynder
26. juni 2004 - 11:17 #19
ja det får jeg
Avatar billede gryn Nybegynder
26. juni 2004 - 11:20 #20
ok... øhhmm. Jeg kan ikke rigtig løse det via ASP og Access indtil du har fået det. Så jeg giver det lige et forsøg mere ved almindelig JavaScript
Avatar billede felixcat Nybegynder
26. juni 2004 - 11:30 #21
Jeg kører det jo lokalt på ISS 5 det går da fint at connecte til mit site
Avatar billede gryn Nybegynder
26. juni 2004 - 11:38 #22
Ok... nå men nu har jeg lige lavet det i JavaScript. Du kan lige se om du kan bruge det. Ellers skriver jeg lige noget ASP til dig.



<html>
<head>
<title>Printer Baby</title>

<script language="javascript">
function faa(obj)

{

if (document.getElementById){return(eval("document.getElementById('"+obj+"')"));}

else if (document.all){return(eval("document.all."+obj));}

else {return(eval("document."+obj));}

}
function aaben(){
var dspl=window.open('','dspl','width=500,height=550,resizable=1,status=0,scrollbars=1')
dspl.document.open()
dspl.document.writeln('<html><head><title>Printervenlig</title></head>')
dspl.document.writeln('<body><div id="indhold">')
dspl.document.writeln(faa("indhold").innerHTML)
dspl.document.writeln('</div></body></html>')
dspl.document.close()
}


</script>

</head>
<body>


<div id="popupknap">
<a href="#" onclick="aaben();return false">Printervenlig side</a><br>
</div>

<div id="menu">
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp;
Menu &nbsp; &nbsp; <br><br>
</div>

<div id="indhold">
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
Her står det indhold på siden, som skal udskrives....
</div>

</body>
</html>


Denne her sender indholdet af div'en "indhold" til popupen. Du kan selv tilføje andet HTML i popup'en efter ønske.
Avatar billede gryn Nybegynder
26. juni 2004 - 11:39 #23
jeg smutter lige i bad... tilbage om 15 min
Avatar billede felixcat Nybegynder
26. juni 2004 - 11:50 #24
Det virker - super
Men hvordan styler man det lige og hvordan kan man sætte print-knap og lukknap på
Avatar billede gryn Nybegynder
26. juni 2004 - 12:13 #25
Jeg vil forslå at style det gennem et eksternt stylesheet.
opret en fil, der hedder "printer.css". Her er et forslag til indholdet:

div#udskrivogluk {
width:100%;
}

a.printerlink {
font-size:10px;
font-weight:bold;
color:blue;
text-decoration:none;
font-family:tahoma, verdana;
}

a.printerlink:hover {
font-size:10px;
font-weight:bold;
color:blue;
text-decoration:red;
font-family:tahoma, verdana;
}

div#indhold {
width:100%;
}




Derudover skal javascriptet nu se ud således:


<script language="javascript">
function faa(obj)

{

if (document.getElementById){return(eval("document.getElementById('"+obj+"')"));}

else if (document.all){return(eval("document.all."+obj));}

else {return(eval("document."+obj));}

}
function aaben(){
var dspl=window.open('','dspl','width=500,height=550,resizable=1,status=0,scrollbars=1')
dspl.document.open()
dspl.document.writeln('<html><head><title>Printervenlig</title>')
dspl.document.writeln('<LINK REL="stylesheet" HREF="printer.css" TYPE="text/css">')
dspl.document.writeln('</head>')
dspl.document.writeln('<body>')
dspl.document.writeln('<div id="printogluk"><a href="#" class="printerlink" onclick="window.print();return false">Udskriv</a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="#" class="printerlink" onclick="window.close();return false">Luk</a><br><br></div>')
dspl.document.writeln('<div id="indhold">')
dspl.document.writeln(faa("indhold").innerHTML)
dspl.document.writeln('</div></body></html>')
dspl.document.close()
}
</script>
Avatar billede gryn Nybegynder
26. juni 2004 - 12:17 #26
hov... der var vist lige en mindre fejl i stylesheetet :-)

a.printerlink:hover {
...
color:blue;
...
text-decoration:red;
...

Skal selvfølgelig være:

a.printerlink:hover {
...
color:red;
...
text-decoration:none;
...
Avatar billede felixcat Nybegynder
26. juni 2004 - 12:39 #27
Det er da helt perfekt - Tusind tak for hjælpen
Avatar billede gryn Nybegynder
26. juni 2004 - 12:43 #28
Det er i orden - tak for point
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