Avatar billede dotnewbi Juniormester
28. september 2008 - 10:52 Der er 9 kommentarer og
1 løsning

probmen med string som indeholder html+ javascript

Hej eksperten jeg har følgende string som jeg ikke kan få til at virke!

document.getElementById('menuBar').innerHTML +="<a href=\"#\" onClick=\"set_winBox('"+a2[c0]+"','ajax','"+a2[c1]+"', '"+a2[c3]+"');return false; setz();\">"+a2[c4]+"</a>";
Avatar billede w13 Novice
28. september 2008 - 12:37 #1
Vi skal nok have en del mere information for at kunne hjælpe.

Den virker ikke, ok! Men hvordan virker den ikke? Får du en fejl? Og hvilken fejl får du? Og kan vi evt. se et link til siden eller i det mindste lidt mere af koden?

Du bør nu nok i det mindste gøre sådan her i stedet:

document.getElementById("menuBar").innerHTML += "<a href=\"java script:set_winBox('"+a2[c0]+"','ajax','"+a2[c1]+"','"+a2[c3]+"');setz();return false;\">"+a2[c4]+"</a>";

Bl.a. har jeg sat return false før setz(), så den kan blive kørt. Mener jeg ikke, den ville blive ellers.

Og hvis det skal være rigtig god kode:

var oElement = document.createElement("a");

oElement.setAttribute("href","java script:set_winBox('"+a2[c0]+"','ajax','"+a2[c1]+"','"+a2[c3]+"');setz();return false;");

oElement.appendChild(document.createTextNode(a2[c4]));

document.getElementById("menuBar").appendChild(oElement);

Så undgår du helt innerHTML.
Avatar billede w13 Novice
28. september 2008 - 12:38 #2
En lille rettelse til den sidste kode:

var oElement = document.createElement("a");

oElement.setAttribute("href","java script:set_winBox('"+a2[c0]+"','ajax','"+a2[c1]+"','"+a2[c3]+"');setz();void(0)");

oElement.appendChild(document.createTextNode(a2[c4]));

document.getElementById("menuBar").appendChild(oElement);
Avatar billede w13 Novice
29. september 2008 - 17:21 #3
Tak for points! :)
Avatar billede dotnewbi Juniormester
29. september 2008 - 19:37 #4
et lille side spørgsmål. Når jeg prøver og oprette flere links via en løkke så bliver kun det første første opretet ? koden ser sådan her ud

for(var i = 0; i < btn.length-1; i++){

var oElement = document.createElement("a");

oElement.setAttribute("href","java script:set_winBox('"+a2[c0]+"','ajax','"+a2[c1]+"','"+a2[c3]+"');setz();void(0)");

oElement.appendChild(document.createTextNode(a2[c4]));

document.getElementById("menuBar").appendChild(oElement);

}
Avatar billede w13 Novice
29. september 2008 - 19:47 #5
Er du sikker på, at btn.length er større end 1?
Avatar billede dotnewbi Juniormester
29. september 2008 - 23:26 #6
ja hele code ser sådan her ud

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var menubar = "demobox100,demo.html,page header,btn link;demobox102,demo.html,page header,btn link2;demobox103,demo.html,page header,btn link3;";
var menucount = 0;
var menutotal = 0;

function setmenu(){

document.getElementById('menuBar').innerHTML = "";

if(menubar){

var c0 = menucount;
var c1 = menucount + 1;
var c2 = menucount + 2;
var c3 = menucount + 3;

var btn = new Array();

var a2 = new Array();

btn=menubar.split(";");



        for(var i=0; i < btn.length-1; i++){
       
                            a2 = btn[i].split(",");
                            alert(a2[0]);
       
                           
                           
                            oElement = document.createElement("a");
                           
                            oElement.setAttribute("id", a2[c0] + i);
                           
                            oElement.setAttribute("href","java script:set_winBox('"+a2[c0]+"','ajax','"+a2[c1]+"','"+a2[c2]+"');setz();");
                           
                            oElement.appendChild(document.createTextNode(a2[c3]));
                           
                            document.getElementById("menuBar").appendChild(oElement);
                           
                           
                           
        //alert(btn.length-1);
        }
       
       
       
}

}

</script>
</head>

<body>

<div id="menuBar" >
&nbsp;
</div>
           
            <div id="contentArea"> <a href="java script:setmenu()">set menu</a>  </div>
</body>
</html>
Avatar billede w13 Novice
29. september 2008 - 23:41 #7
Hvilket formål tjener linjen: document.getElementById('menuBar').innerHTML = "";
?
Avatar billede w13 Novice
29. september 2008 - 23:42 #8
i < btn.length-1;
skal måske nok være:
i < btn.length;

Men er ikke helt sikker.
Avatar billede dotnewbi Juniormester
30. september 2008 - 08:10 #9
Ah har fundet fejlen der skal jo være () rundt btn.length-1
Avatar billede olebole Juniormester
30. september 2008 - 10:07 #10
Nej, det kan ikke gøre hverken fra eller til. Til gengæld er jeg næsten 200% sikker på, der blot skal stå 'i < btn.length' - uden minus  ;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