Avatar billede spazzer Nybegynder
20. april 2005 - 14:57 Der er 18 kommentarer og
1 løsning

html i en document.write?

Jeg skal have noget tabel halløj i en document.write(.. jeg sætter det indenfor et sæt ' og så virker det sådan set fint nok. Problemet er bare at det hele skal stå på samme linje. Hvordan kan jeg skrive flere linjer html i en document.write?
Avatar billede barklund Nybegynder
20. april 2005 - 15:03 #1
Er problemet, at du synes at det er besværligt, at skulle skrive én lang streng i javascript?

Så kan du istedet for:

document.write("<table><tr><td>Her er noget</td></tr></table>");

Skrive flere efter hinanden:

document.write("<table>");
document.write("<tr>");
document.write("<td>Her er noget</td>");
document.write("</tr>");
document.write("</table>");

Hvis det er det, du mener :)

--
Morten Barklund
Avatar billede spazzer Nybegynder
20. april 2005 - 15:10 #2
Problemet er at det bliver for uoverskueligt i én linje.. Man kan ikke sætte det hele indenfor et eller andet sæt tegn og den så tolker som html?
Avatar billede barklund Nybegynder
20. april 2005 - 15:13 #3
Niks, javascript parseren kan ikke lide linjeskift i strenge.

Men du kan også lave en streng som ovenstående:

str = "";
str += "<table>";
str += "<tr>";
str += "<td>Her er noget</td>";
str += "</tr>";
str += "</table>";
document.write(str);

Så må du jo selv om, om du synes, at det er mere overskueligt.
Avatar billede spazzer Nybegynder
20. april 2005 - 15:55 #4
okay... må igang med nogle document.write('er så.. smid igen svarbesked hvis du vil have points.
Avatar billede Slettet bruger
20. april 2005 - 18:42 #5
du kan vel også lave det serverside, f.eks. med php.:

<?
$str = "
<table>
<tr>
  <td></td>
  <td></td>
  <td></td>
</tr>
</table>";

  document.write('". $str ."');
?>
Avatar billede Slettet bruger
20. april 2005 - 18:42 #6
<?
$str = "
<table>
<tr>
  <td></td>
  <td></td>
  <td></td>
</tr>
</table>";

echo "document.write('". $str ."')";
?>
Avatar billede olebole Juniormester
20. april 2005 - 22:46 #7
<ole>

Det skal lige siges, at 'barklund #2' er langt bedre end 'barklund #1'. I stort set alle sprog, bør man fylde en buffer, som så skrives ud til sidst. Det giver langt bedre performance, end at skrive ud mange steder  :)

/mvh
</bole>
Avatar billede roenving Novice
21. april 2005 - 02:41 #8
-- og hvis du godt vil have, at din html er aflæselig med en Vis Kode, kan du f.eks.

str = "<table>\n";
str += "<tr>\n";
str += "<td>Her er noget</td>\n";
str += "</tr>\n";
str += "</table>";
document.write(str);

-- men det vil selvfølgelig betyde, at der er 4 eller 8 tegn mere i koden !-)
Avatar billede barklund Nybegynder
21. april 2005 - 09:23 #9
/me kaster et svar efter nogen
Avatar billede barklund Nybegynder
21. april 2005 - 09:26 #10
Hovhov forresten? Den ene barklund er vel lige så god som den anden - så mange er vi heller ikke af slagsen! (13-14 stykker)

--
Morten Barklund
Avatar billede Slettet bruger
21. april 2005 - 13:16 #11
nogen der har en kommentar til min?, jeg vil egentlig også gerne vide om det er helt forkasteligt :o)
Avatar billede roenving Novice
22. april 2005 - 10:57 #12
At gøre det serverside er bare en anden måde at gøre det på, men det er vel oftest overkill, at benytte sig både af echo og document.write ?-)
Avatar billede Slettet bruger
22. april 2005 - 11:08 #13
jep, men hvis det altid er det samme der skal udskrives, er der vel ingen grund til at lave det klient-side, er der?
Avatar billede roenving Novice
22. april 2005 - 15:21 #14
-- tjah, tjoeh ...

-- nu kender vi jo ikke opgaven, så det er meget svært at vide, om det ene er det fornuftige eller det andet er ...

-- men din metode er absolut den mest brugbare, hvis koden kan være forskellig fra gang til gang, afhængig af nogle serverside beregnede parametre ...

-- og den kan være god nok, hvis det er statisk, men så er det klart overkill, for så er det klart nemmere for serveren bare at videresende det uden for alvor at kaste det igennem php-maskinen:

//noget php-kode
?>
str = "<table>" +
"<tr>" +
"<td>Her er noget</td>" +
"</tr>" +
"</table>";
document.write(str);
<?
//noget mere php-kode
Avatar billede Slettet bruger
22. april 2005 - 15:50 #15
i dit eksempel er det vel smartest at udskrive det i ren html, ikke?

//noget php-kode
?>
<table>
<tr>
<td>Her er noget</td>
</tr>
</table>
<?php
//noget mere php-kode
Avatar billede roenving Novice
22. april 2005 - 15:54 #16
-- den nåede jeg heldigvis at blokere, for det viste må jo foregå inde i et script-tag !-)
Avatar billede Slettet bruger
22. april 2005 - 16:10 #17
Jeg må indrømme at jeg ikke fangede dit sidste indlæg :o|
Avatar billede roenving Novice
22. april 2005 - 16:26 #18
Hvis det overhovedet er relevant at lave noget javascript-kode, må det nødvendigvis foregå inde i en javascript-blok, og der må man selvsagt ikke skrive html-tags ...
Avatar billede Slettet bruger
22. april 2005 - 16:50 #19
nej det er rigtigt nok. Det var vist en lille smutter herfra. :o)
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