Avatar billede dennism Nybegynder
19. november 2004 - 19:52 Der er 4 kommentarer og
1 løsning

JavaScript: Print et bestemt div

Jeg har et .html-dokument hvor jeg har et div ved navn "div_print". Jeg vil gerne have lave en knap, hvor er når jeg trykker på knappen, så blive mit div "div_print" åbnet i et nyt browser-vindue og udskrevet. Det er nemt nok at sørge for at det bliver udskrivet - det kan jo klars blot ved windows.print().
Min mit spørgsmål er, hvordan jeg kommer afsted med at sende dette div til et vindue - kan det i det hele taget lade sig gøre?
Hvis ikke, kan det så vha. print-funktionen lade sig gøre kun at udskrive en bestemt del af siden?
Avatar billede thomas_yde Nybegynder
20. november 2004 - 01:47 #1
En lille test du kan lege lidt med:

<script>
function openWindowWithDivHTML(id){
    newWindow = window.open("","newWin");
    newWindow.document.open();
    newWindow.document.write(document.getElementById('divtest').innerHTML);
    newWindow.document.close();
   
}
</script>
<input type="button" onclick="openWindowWithDivHTML('divtest');" value="Se div innerHtml">
<div id="divtest">
    <table>
        <tr><td>en test tabel</td></tr>
        <tr><td>en test tabel 2</td></tr>
    </table>
</div>
Avatar billede thomas_yde Nybegynder
20. november 2004 - 01:49 #2
rettelse:
.....
    newWindow.document.write(document.getElementById(id).innerHTML);
                                                        ^^
.....
Avatar billede dennism Nybegynder
20. november 2004 - 14:16 #3
Det ser rigtig fint ud. Er det blot lige en detajle:

Jeg har denne kode:
function print_div(){
    newWindow = window.open("print.html","newWin");
    newWindow.document.open();
    newWindow.document.write(document.getElementById('div_groups').innerHTML);
    newWindow.document.close();
}

Når newWindow.document.write bliver kørt, bliver alt i "print.html" slettet, og det er kun den nye tekst man kan se. Kan det ikke ændres? Jeg har nemlig et css-style i print.html, som også gerne skulle gælde for den tekst der bliver smidt derover i!
Avatar billede dennism Nybegynder
20. november 2004 - 17:21 #4
Kan det klares?
Avatar billede thomas_yde Nybegynder
20. november 2004 - 23:54 #5
Så skal du skrive det med i documentwrite
fx.
print_div(){
htmlOutput  = "<html><he"+"ad><link rel=\"stylesheet\" href=\"style.css\"></he"+"ad><bo"+"dy>";
htmlOutput += document.getElementById('div_groups').innerHTML;
htmlOutput += "</bo"+"dy></ht"+"ml>";
    newWindow = window.open("print.html","newWin");
    newWindow.document.open();
    newWindow.document.write(htmlOutput);
    newWindow.document.close();
}
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