Avatar billede duno Nybegynder
18. april 2008 - 14:40 Der er 19 kommentarer og
2 løsninger

Hvorfor er der linieskift imellem alle billederne

<script language="JavaScript" type="text/javascript">
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"default.asp\"><img src=\"http://www.domæne/links/forside.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"basket.asp\"><img src=\"http://www.domæne/links/indkobskurv.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"group.asp?group=10&sub=10\"><img

src=\"http://www.domæne/links/beklaedning.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"group.asp?group=5&sub=5\"><img src=\"http://www.domæne/links/whiite.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"group.asp?group=9&sub=9\"><img src=\"http://www.domæne/links/rosemunde.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"group.asp?group=8&sub=8\"><img src=\"http://www.domæne/links/minus.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"group.asp?group=7&sub=7\"><img src=\"http://www.domæne/links/editogella.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<a href=\"group.asp?group=6&sub=6\"><img src=\"http://www.domæne/links/danefae.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
    var div = document.getElementById("shopmenu");
    if (div) {
        div.innerHTML = "<br><br><a href=\"group.asp?group=2&sub=2\"><img src=\"http://www.domæne/links/apair.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;
    }
</script>

Jrg vil gerne have at de står over hundanden.. ligesom et samlet billede
Avatar billede roenving Novice
18. april 2008 - 14:44 #1
Det ser da godt nok mærkeligt ud, at du en hel stribe gange henter det samme element og så sætter et nyt indhold og dermed sletter det, du lige har indsat (rent bortset fra innerHTML-problematikken ?-)
Avatar billede duno Nybegynder
18. april 2008 - 15:51 #2
?? hvad mener du :o) ??

det virker jo, altså lige med undtagelse af at der er mellemrum imellem alle billederne
Avatar billede roenving Novice
18. april 2008 - 15:57 #3
Du skriver en hel masse gange:

    var div = document.getElementById("shopmenu");

-- det vil da hver gang tage fat i det samme element ...
Avatar billede olebole Juniormester
18. april 2008 - 16:35 #4
<ole>

For det første vil den kode, du viser her, med garanti udløse en JavaScript fejl. Disse to linjer skal under alle omstændigheder samles til én:

div.innerHTML = "<a href=\"group.asp?group=10&sub=10\"><img

src=\"http://www.domæne/links/beklaedning.gif\" border=\"0\ Align=\"left\"</a> " + div.innerHTML;

Derudover vil den kode, du viser, ikke vise billederne over/under hinanden - men ved siden af hinanden. Vises de over/under hinanden, må det skyldes noget CSS, som du ikke viser.

Endelig hører innerHTML property'en til i midten af 90'erne - sammen med roterende giffer, layout ved hjælp af store tabel-helveder, blink-, font- og marquee-tags. Den har aldrig været valid i nogen standard og bliver det heller ikke - og så er den seriøst uhensigtsmæssig at bruge, da den ofte spænder ben for moderne scripting.

I stedet bør du bruge DOM, som snart har været gældende standard i 10 år  ;o)

/mvh
</bole>
Avatar billede montago Praktikant
18. april 2008 - 17:53 #5
Hey duno

Når man bruger innerHTML, skal du sørge for at skrive din HTML ind i en streng, før du tilskriver dit element

noget lignene det her:

var elem = document.getElementById("menu");
var html = ""
html += "<a href='blabla1.htm'><img src='bla.jpg'></a>"
html += "<a href='blabla2.htm'><img src='bla.jpg'></a>"
html += "<a href='blabla3.htm'><img src='bla.jpg'></a>"

elem.innerHTML = html;


dernæst, så er der noget galt med den html du prøver at udskrive, du mangler '>' på alle img tags
Avatar billede montago Praktikant
18. april 2008 - 17:54 #6
lidt mere sådan her :

<script language="JavaScript" type="text/javascript">
    var div = document.getElementById("shopmenu");
   
    var HTML = "<a href=\"default.asp\"><img src=\"http://www.domæne/links/forside.gif\" border=\"0\ Align=\"left\"></a>";
    HTML += "<a href=\"basket.asp\"><img src=\"http://www.domæne/links/indkobskurv.gif\" border=\"0\ Align=\"left\"></a>";
    HTML += "<a href=\"group.asp?group=10&sub=10\"><img src=\"http://www.domæne/links/beklaedning.gif\" border=\"0\ Align=\"left\"></a> ";
    HTML += "<a href=\"group.asp?group=5&sub=5\"><img src=\"http://www.domæne/links/whiite.gif\" border=\"0\ Align=\"left\"></a> " ;
    HTML += "<a href=\"group.asp?group=9&sub=9\"><img src=\"http://www.domæne/links/rosemunde.gif\" border=\"0\ Align=\"left\"></a> ";
    HTML += "<a href=\"group.asp?group=8&sub=8\"><img src=\"http://www.domæne/links/minus.gif\" border=\"0\ Align=\"left\"></a> " ;
    HTML += "<a href=\"group.asp?group=7&sub=7\"><img src=\"http://www.domæne/links/editogella.gif\" border=\"0\ Align=\"left\"></a> ";
    HTML += "<a href=\"group.asp?group=6&sub=6\"><img src=\"http://www.domæne/links/danefae.gif\" border=\"0\ Align=\"left\"></a> " ;
    HTML += "<br><br><a href=\"group.asp?group=2&sub=2\"><img src=\"http://www.domæne/links/apair.gif\" border=\"0\ Align=\"left\"></a> ";
   
    div.innerHTML = HTML;
</script>
Avatar billede olebole Juniormester
18. april 2008 - 17:58 #7
Resultatet bliver nøjagtig det samme, om man indsætter elementerne som én eller flere strenge  =)
Avatar billede montago Praktikant
18. april 2008 - 18:24 #8
ehm... nej, langt fra

hvis man tilskriver innerHTML løbene bliver siden renderet hver gang. Hvis man derimod tilskriver ÉN gang, er renderingen hurtigere.

at innerHTML har sin effekt på DOM træet, kommer man ikke uden om :)
Avatar billede olebole Juniormester
18. april 2008 - 18:41 #9
Hvis det er hastighed, der er argumentet, så skal man vel join'e et array i stedet:

var aHTML = ["<a href=\"default.asp\"><img src=\"http://www.domæne/links/forside.gif\" border=\"0\ Align=\"left\"></a>"];
aHTML[1] = "<a href=\"basket.asp\"><img src=\"http://www.domæne/links/indkobskurv.gif\" border=\"0\ Align=\"left\"></a>";
aHTML[2] = "<a href=\"group.asp?group=10&sub=10\"><img src=\"http://www.domæne/links/beklaedning.gif\" border=\"0\ Align=\"left\"></a> ";
aHTML[3] = "<a href=\"group.asp?group=5&sub=5\"><img src=\"http://www.domæne/links/whiite.gif\" border=\"0\ Align=\"left\"></a> " ;
aHTML[4] = "<a href=\"group.asp?group=9&sub=9\"><img src=\"http://www.domæne/links/rosemunde.gif\" border=\"0\ Align=\"left\"></a> ";
aHTML[5] = "<a href=\"group.asp?group=8&sub=8\"><img src=\"http://www.domæne/links/minus.gif\" border=\"0\ Align=\"left\"></a> " ;
aHTML[6] = "<a href=\"group.asp?group=7&sub=7\"><img src=\"http://www.domæne/links/editogella.gif\" border=\"0\ Align=\"left\"></a> ";
aHTML[7] = "<a href=\"group.asp?group=6&sub=6\"><img src=\"http://www.domæne/links/danefae.gif\" border=\"0\ Align=\"left\"></a> " ;
aHTML[8] = "<br><br><a href=\"group.asp?group=2&sub=2\"><img src=\"http://www.domæne/links/apair.gif\" border=\"0\ Align=\"left\"></a> ";

document.getElementById("shopmenu").innerHTML = aHTML.join("");

Det gør ikke væsentlig forskel i FF, men i IE performer array-join som oftest væsentligt bedre ... og den dækker trods alt stadig den langt væsentligste del af markedet.
Avatar billede montago Praktikant
18. april 2008 - 18:45 #10
altså... om man bruger array.join eller string concat, er jo ligemeget.
pointen var, at det er dumt at concat med den renderede html:

div.innerHTML += html.....
div.innerHTML += html.....
Avatar billede duno Nybegynder
18. april 2008 - 21:17 #11
Jeg har nu prøvet jeres koder, men begge laver mellemrum imellem billederne,

billederne skal ligge

X
X
X
X

lige nu ligger de

X

X

X

X
Avatar billede duno Nybegynder
18. april 2008 - 21:18 #12
Det handler ikke om hastighed, siden hentes på ingen tid pt, så det handler kun om mellemrum
Avatar billede olebole Juniormester
18. april 2008 - 22:45 #13
montago >> Hvordan skulle jeg vide, hva din pointe er, når du angiver en ny i hver kommentar. I (18/04-2008 18:24:05) var pointen jo hastighed - og det var såmænd bare det, jeg forholdt mig til  =)

duno >> Du må vise noget mere kode, for billederne vil som sagt lægge sig ved siden af hinanden, med mindre noget andet kode gør, at de lægger sig under hinanden
Avatar billede duno Nybegynder
18. april 2008 - 23:34 #14
Jeg har ikke mere kode, det er til en scannet shop, resten styres af scannet
Avatar billede montago Praktikant
18. april 2008 - 23:55 #15
duno : følger der ikke et stylesheet med til webshoppen ?
Avatar billede olebole Juniormester
19. april 2008 - 00:57 #16
Hvis det div, du indsætter dine links i, har fået sat en bredde, så der kun kan være ét billede i bredden, vil mellemrum efter dine links skabe lidt ekstra luft mellem billederne. Prøv at slette mellemrummene:
  ".... Align=\"left\"</a> "; // <-- Dér

- så forsvinder problemet formodentlig
Avatar billede olebole Juniormester
19. april 2008 - 00:58 #17
"[...] skabe lidt ekstra luft mellem billederne." >> "[...] skabe lidt ekstra luft mellem billederne i IE."  ;o)
Avatar billede duno Nybegynder
10. maj 2008 - 21:43 #18
det viste sig efter mange forsøg at shoppen havde "automatisk linieskift" aktiveret, det har den ikke mere.. send svar.. så får i points og tak for jeres hjælp :o)
Avatar billede olebole Juniormester
11. maj 2008 - 02:05 #19
:)
Avatar billede montago Praktikant
11. maj 2008 - 10:22 #20
hmm
Avatar billede olebole Juniormester
30. december 2008 - 02:40 #21
Tak for 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