if (DOM) { // hvad gør jeg her ? } else if (IE4){ eval(\'document.stxt.src = StxtArray[la].src\'); eval(\'document.poff.src = PoffArray[la].src\'); } else if (NS4){ eval(\'document.layers.subtxt.document.images.stxt.src = StxtArray[la].src\'); eval(\'document.layers.payoff.document.images.poff.src = PoffArray[la].src\'); }
function knap_act(btn,idname) { if (pg != btn) if (DOM) { eval(\'document.getElementById.btn\'+btn+\'.src = ButtonArray[btn][la][1].src\'); } else if (IE4) { eval(\'document.btn\'+btn+\'.src = ButtonArray[btn][la][1].src\'); } else if (NS4) { eval(\'document.layers.\'+idname+\'.document.images.btn\'+btn+\'.src = ButtonArray[btn][la][1].src\'); } }
Hvordan laver jeg dette om til DOM-cool kode? Jeg skal først og fremmest have fat i getElementById(\"\"), der vist tager argumentet som streng, men kan jeg bruge \'src\' direkte? Altså document.getElementById(\"btn1\").src = [whatever] ? Eller er problemet, at jeg skal trigge billedet direkte, og at der altså mangler et id - i stedet for et navn...?
Jeg er ved at være lidt lost, så al hjælp vil blive værdsat :) Gerne med eksempler på nye versioner af ovenstående kode...
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Og så skal vi have fjernet alt det der grimme eval(), det er unødvendigt! Lad os skrive function 1 (husk at din funktion ikke kan hedde dette, kald den f.eks. a1)
function a1(la){ if (DOM){ document.getElementById(\'stxt\').src = StxtArray[la].src; document.getElementById(\'poff\').src = PoffArray[la].src; } else if (IE4){ document.stxt.src = StxtArray[la].src; document.poff.src = PoffArray[la].src; } else if (NS4){ document.layers.subtxt.document.stxt.src = StxtArray[la].src; document.layers.payoff.document.poff.src = PoffArray[la].src; } }
hmm, lad os ændre den lidt, den fylder jo meget. For det første kan du gøre det samme i DOM som i IE4, nemlig referere billedet direkte på document objektet.
function a1(la){ var sImg, pImg; if (document.stxt){ sImg = document.stxt; pImg = document.poff; } else if (document.layers){ sImg = document.layers.subtxt.document.stxt; pImg = document.layers.payoff.document.poff; } sImg.src = StxtArray[la].src; pImg.src = PoffArray[la].src; }
Resten af dit kode er godt nok ulæseligt (på grund af det eval), så jeg prøver lige at forstå hvad det skal lave og vender tilbage.
Den virkelige hjælp var såmænd, at man jo kan referere direkte på objektet. Så da først den rigtige detection blev lavet, og jeg fik rettet lidt hist og pist, så...
Mange tak!
Synes godt om
Ny brugerNybegynder
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.