Avatar billede Kurt_Joergensen Nybegynder
26. maj 2010 - 12:07 Der er 20 kommentarer

Problem med script i firefox, crome og safari

Script virker i IE, men ikke i firefox, crome og safari.

Når man peger på markering på et kort skal den tilhørende tekst vises under kortet.

<script type="text/javascript">
<!--
           
function doAll(j) {
changetext(content[j]);
}
           
var content=new Array()

content[0]='<p>Peg på en rød markering og se information om vinavler.</p>'
content[1]='<p><b>01 - Domain Aalsgaard</b> - Ålsgårde Stationsvej 13, Ålsgårde<br>Lars Hagerman - Nordsjællands Vinvej</p>'
           
function changetext(whichcontent){
if (document.all)
descriptions.innerHTML=whichcontent
else if (document.layers){
document.d1.document.d2.document.write(whichcontent)
document.d1.document.d2.document.close()
}
           
}
           
// -->
</script>
Avatar billede Slettet bruger
26. maj 2010 - 12:12 #1
Mangler du ikke en masse ; ?

<script type="text/javascript">
<!--
           
function doAll(j) {
changetext(content[j]);
}
           
var content=new Array();

content[0]='<p>Peg på en rød markering og se information om vinavler.</p>';
content[1]='<p><b>01 - Domain Aalsgaard</b> - Ålsgårde Stationsvej 13, Ålsgårde<br>Lars Hagerman - Nordsjællands Vinvej</p>';
           
function changetext(whichcontent){
if (document.all)
descriptions.innerHTML=whichcontent;
else if (document.layers){
document.d1.document.d2.document.write(whichcontent);
document.d1.document.d2.document.close();
}
           
}
           
// -->
</script>
Avatar billede Kurt_Joergensen Nybegynder
26. maj 2010 - 12:26 #2
Der mangler koden om kortet, men jeg går ud fra at problemet ligger omkring (document.all). Derfor havde jeg ikke indsat den.
Men her er den:

<body>

<map name="FPMap0" id="fpmap">
<area href="http://www.domainaalsgaard.dk/" onmouseover="doAll(1)" onmouseout="doAll(0)" shape="circle" coords="364, 225, 6" alt="Domain Aalgaard"  target="_blank" />
</map>
<img src="http://www.vinvej.dk/nye version/images/DK-kort_1.jpg" usemap="#FPMap0" alt="dk-kort" />
<div id="d1" name="doAll(0)"></div>

<div id="d2"></div>

<div id="descriptions">Peg på en rød markering og se information om vinavler.</div>
<div>Hvis vingården er tilmeldt en vinvej, vises vinvejens navn i informationen.<br /></div>
</body>
Avatar billede Slettet bruger
26. maj 2010 - 12:34 #3
document.all kendes kun i iE - så de andre browsere ryger ned i layers-koden.

Men det er der faktisk ingen grund til, for de kender også innerHTML metoden.
(i de seneste versioner - tidligere kan ignoreres. De er usikre, og brugerne BØR ikke bruge dem!)

SÅ:

function changetext(whichcontent)
  {
  descriptions.innerHTML = whichcontent
  }

selvfølgelig under forudsætning af "descriptions" er et "element"
= tidligere er bestemt med deocument.getElementById("id for description box")
Avatar billede olebole Juniormester
26. maj 2010 - 12:53 #4
<ole>

Udfra koden (som daterer sig tilbage til tiden omkring IE4 og NS4) at dømme, skrives ind i to forskellige elementer i de to browsere - og 'descriptions' synes ikke at være defineret.

Kurt_Joergensen >> Jeg tror, du skal lade svarerne prøve at finde problemerne, for jeg tror ikke, du gætter helt rigtigt i, at det kun skulle være omkring 'document.all', der er problemer.

Derudover skal du vide, at innerHTML overskriver det fragment, du bruger det på. Derfor vil alle programmatiske referencer til elementer i fragmentet ikke længere eksistere efter, når/hvis innerHTML bruges på fragmentet.

En anden af innerHTML's uhensigtsmæssigheder er, at den nulstiller alle formfelter i det fragment, den bruges på.

En tredie er, at innerHTML aldrig har været del af nogen somhelst standard. Foreløbig ser det ud til, at den kommer med i HTML 5 DOM'en, som er planlagt til at være færdig i 2012 - men derfor er der ingen, der siger, at den faktisk vil være med til den tid.

Generelt er det bedre (og vedligeholdelses venligt) at bruge DOM i stedet for innerHTML. Skal du have råd om det, må du dog lægge et link til siden

/mvh
</bole>
Avatar billede Kurt_Joergensen Nybegynder
26. maj 2010 - 13:05 #5
Avatar billede Slettet bruger
26. maj 2010 - 13:16 #6
Ja, innerHTML kan være lidt brutal, men er også dejlig let at bruge og forstå.
- Perfekt til netop den beskrevne funktionalitet.


Udskift din nuværende changetext-funktion med denne:

function changetext(whichcontent)
  {
  document.getElementById("descriptions").innerHTML = whichcontent
  }
Avatar billede Kurt_Joergensen Nybegynder
26. maj 2010 - 13:30 #7
Tak!
så virker det. :-)
DBH

Kurt
Avatar billede Kurt_Joergensen Nybegynder
26. maj 2010 - 13:38 #8
Jeg skulle måske lige gøre det rigtigt
Tak!
så virker det. :-)
DBH
Avatar billede Kurt_Joergensen Nybegynder
26. maj 2010 - 13:40 #9
Jeg prøver igen. :-)

Tak!
så virker det. :-)
DBH

Kurt
Avatar billede Slettet bruger
26. maj 2010 - 13:45 #10
Sørenjensemig : )

Tip:
Hvis du sætter en bid af teksten i "Peg på en rød...", til bold/fed, vil alle linjerne blive lige "høje"
- hvorved du slipper for at de "hopper" når der skiftes imellem dem.
(muligvis bare et "bold" mellemrum..?)

PS:
Der er ingen info for den vingård som ligger længst mod syd, på Lolland.
(og heller ikke den firkantede i København - men dér ER vel ingen vingård - midt i København ?!?)
Avatar billede olebole Juniormester
26. maj 2010 - 13:47 #11
Jeg ville nok gøre det noget à la:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<title>Vinvej.dk - vejen til dansk vin - startside</title>
<!-- <link rel="shortcut icon" href="/favicon.ico" />-->
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<meta http-equiv="X-UA-Compatible" content="IE=8">
<meta name="Description" content="vinvej.dk: Vinvejen til De Danske Vingårde og dansk produceret kvalitetsvin">
<meta name="Keywords" content="generelle oplysninger information introduktion Danske Vingårde dansk produceret vin rødvin hvidvin">
<meta name="Revisit-after" content="20">
<meta name="Author" content="Kurt Jørgensen">
<link rev="made" href="mailto:webmaster@vinvej.dk">
<meta http-equiv="Reply-to" content="webmaster@vinvej.dk">
<meta name="Copyright" content="Kurt Jørgensen">
<meta http-equiv="Content-language" content="dan">
<meta name="ObjectType" content="Data">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta name="robots" content="index,follow">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="verify-v1" content="0xgjgI44iQkAUUPowseEr1WiP833MU6dmUJmbdR5seM=">
<script type="text/javascript">
<!--
var content=new Array()

content[0]='<p>Peg på en rød markering og se information om vinavler.</p>'
content[1]=["01 - Domain Aalsgaard", " - Ålsgårde Stationsvej 13, Ålsgårde", "Lars Hagerman - Nordsjællands Vinvej"];
content[2]=["02 - Frederiksborg Vin", " - Harløsevej 164, Hillerød", "Birgit Willum - Nordsjællands Vinvej"];
content[3]=["03 - Annisse Vingård", " - Præstevej 89, Annisse, Helsinge", "Niels Frees - Nordsjællands Vinvej"];
content[4]=["04 - Degnemosegaard", " - Degnemosevejvej 6, Ferslev, Skiby", "Gorm Poulsen - Nordsjællands Vinvej"];
content[5]=["05 - Stone Grange", " - Jonstrup, Fredensborg"];
content[6]=["06 - Stubkjær", " - Tisvildeleje"];
content[7]=["07 - Kelleris Vingård", " - Kvistgård"];
content[8]=["08 - Garbolund", " - Helsinge"];
content[9]=["09 - Fursødal", " - Birkerød"];
content[10]=["10 - Asmus-Olsen", " - Værløse"];
content[11]=["11 - Dansk Vincenter", " - Hvidovre"];
content[12]=["12 - Hansen", " - Roskilde"];
content[13]=["13 - Vitalux", " - Tølløse"];
content[14]=["14 - Vinperlen", " - Gislinge"];
content[15]=["15 - Dyrehøjgaard", " - Røsnæs"];
content[16]=["16 - Rosenbæk Vin", " - Herfølge"];
content[17]=["17 - Domaine Skovgaard", " - Slagelse"];
content[18]=["18 - Solbjerggaard", " - Lundby"];
content[19]=["19 - Hjelm Vingaard", " - Stege"];
content[20]=["20 - Hideaway", " - Fejø"];
content[21]=["21 - Galsgaard vin", " - Nørre Alslev"];
content[22]=["22 - Kraghave Vingård", " - Nykøbing F"];
content[23]=["23 - Vester Ullerslev Vingaard", " - Øster Ulslev"];
content[24]=["24 - Plough", " - Stokkemarke"];
content[25]=["25 - ", " - "];
content[26]=["26 - Øllingesøe", " - Søllested"];
content[27]=["27 - Højbakke Vingård", " - Nakskov"];
content[28]=["28 - Høegh Vin", " - Kettinge"];
content[29]=["29 - Ørnberg Vin", " - Sj. Odde"];

content[30]=["30 - Lille Gadegård", " - Åkirkeby"];

content[40]=["40 - Nyholm Vin", " - Marslev"];
content[41]=["41 - Skaarupøre Vingaard", " - Skaarup"];
content[42]=["42 - Holgersen", " - Broby"];
content[43]=["43 - Sørensen", " - Rudkøbing"];

content[50]=["50 - Skærsøgaard Vine", " - Nørresøvej 12, Dons, Almind", "Sven Moesgaard - Sønderjyllands Vinvej"];
content[51]=["51 - Modavi", " - Fredericia"];
content[52]=["52 - Aarø Vingaard", " - Aarø"];
content[53]=["53 - Fornæs Vingård", " - Grenå"];
content[54]=["54 - Hedegårdens vinavl", " - Skødstrup"];
content[55]=["55 - Château Morell", " - Kjellerup"];
content[56]=["56 - Brage Vin", " - Struer"];
content[57]=["57 - Glenholm Vingård", " - Ranum"];
content[58]=["58 - Munkens Vingård", " - Løkken"];



function doAll(j) {
    changetext(j!=0?content[j]:null);
}
function changetext(whichcontent){
    var oDescr = document.getElementById("descriptions");
    if (whichcontent) {
        oDescr.firstChild.firstChild.nodeValue = whichcontent[0];
        oDescr.firstChild.nextSibling.nodeValue = whichcontent[1];
        if (whichcontent.length>2) oDescr.lastChild.nodeValue = whichcontent[2];
        else oDescr.lastChild.nodeValue = "\u00a0";
    } else {
        oDescr.firstChild.firstChild.nodeValue = "\u00a0";
        oDescr.firstChild.nextSibling.nodeValue = "\u00a0";
        oDescr.lastChild.nodeValue = "\u00a0";
    }
}

// -->
</script>
<style type="text/css">
.style1 {
    font-size: xx-small;
}
</style>
</head>
<body>

<map name="FPMap0" id="fpmap">
<area href="http://www.domainaalsgaard.dk/" onMouseOver="doAll(1)" onMouseOut="doAll(0)" shape="circle" coords="364, 225, 6" alt="Domain Aalgaard"  target="_blank">
<area href="http://www.frederiksborg-vin.dk" onMouseOver="doAll(2)" onMouseOut="doAll(0)" shape="circle" coords="341, 251, 6" alt="Frederiksborg Vin" target="_blank">
<area href="http://www.annisse-vingaard.dk/" onMouseOver="doAll(3)" onMouseOut="doAll(0)" shape="circle" coords="339, 244, 6" alt="Annisse Vingård" target="_blank">
<area href="http://www.degnemosegaard.dk" onMouseOver="doAll(4)" onMouseOut="doAll(0)" shape="circle" coords="322, 274, 6" alt="Degnemosegaard" target="_blank">
<area href="java script:void(null)" onMouseOver="doAll(5)" onMouseOut="doAll(0)" shape="circle" coords="357, 240, 6" alt="Stone Grange" target="_blank">
<area href="java script:void(null)" onMouseOver="doAll(6)" onMouseOut="doAll(0)" shape="circle" coords="323, 239, 6">
<area href="java script:void(null)" onMouseOver="doAll(7)" onMouseOut="doAll(0)" shape="circle" coords="366, 234, 6">
<area href="java script:void(null)" onMouseOver="doAll(8)" onMouseOut="doAll(0)" shape="circle" coords="339, 235, 6">
<area href="java script:void(null)" onMouseOver="doAll(9)" onMouseOut="doAll(0)" shape="circle" coords="356, 254, 6">
<area href="java script:void(null)" onMouseOver="doAll(10)" onMouseOut="doAll(0)" shape="circle" coords="355, 270, 6">
<area href="java script:void(null)" onMouseOver="doAll(11)" onMouseOut="doAll(0)" shape="circle" coords="361, 290, 6">
<area href="java script:void(null)" onMouseOver="doAll(12)" onMouseOut="doAll(0)" shape="circle" coords="336, 296, 6">
<area href="java script:void(null)" onMouseOver="doAll(13)" onMouseOut="doAll(0)" shape="circle" coords="313, 296, 6">
<area href="java script:void(null)" onMouseOver="doAll(14)" onMouseOut="doAll(0)" shape="circle" coords="277, 289, 6">
<area href="java script:void(null)" onMouseOver="doAll(15)" onMouseOut="doAll(0)" shape="circle" coords="244, 286, 6">
<area href="java script:void(null)" onMouseOver="doAll(16)" onMouseOut="doAll(0)" shape="circle" coords="347, 321, 6">
<area href="java script:void(null)" onMouseOver="doAll(17)" onMouseOut="doAll(0)" shape="circle" coords="277, 330, 6">
<area href="java script:void(null)" onMouseOver="doAll(18)" onMouseOut="doAll(0)" shape="circle" coords="334, 365, 6">
<area href="java script:void(null)" onMouseOver="doAll(19)" onMouseOut="doAll(0)" shape="circle" coords="355, 373, 6">
<area href="java script:void(null)" onMouseOver="doAll(20)" onMouseOut="doAll(0)" shape="circle" coords="288, 393, 6">
<area href="java script:void(null)" onMouseOver="doAll(21)" onMouseOut="doAll(0)" shape="circle" coords="325, 398, 6">
<area href="java script:void(null)" onMouseOver="doAll(22)" onMouseOut="doAll(0)" shape="circle" coords="334, 410, 6">
<area href="java script:void(null)" onMouseOver="doAll(23)" onMouseOut="doAll(0)" shape="circle" coords="313, 427, 6">
<area href="java script:void(null)" onMouseOver="doAll(24)" onMouseOut="doAll(0)" shape="circle" coords="294, 408, 6">
<!-- <area href="java script:void(null)" onmouseover="doAll(25)" onmouseout="doAll(0)" shape="circle" coords="290, 429, 6" /> -->
<area href="java script:void(null)" onMouseOver="doAll(26)" onMouseOut="doAll(0)" shape="circle" coords="280, 414, 6">
<area href="java script:void(null)" onMouseOver="doAll(27)" onMouseOut="doAll(0)" shape="circle" coords="261, 413, 6">
<area href="java script:void(null)" onMouseOver="doAll(28)" onMouseOut="doAll(0)" shape="circle" coords="315, 414, 6">
<area href="java script:void(null)" onMouseOver="doAll(29)" onMouseOut="doAll(0)" shape="circle" coords="276, 249, 6">

<area href="java script:void(null)" onMouseOver="doAll(30)" onMouseOut="doAll(0)" shape="circle" coords="379, 42, 6">

<area href="java script:void(null)" onMouseOver="doAll(40)" onMouseOut="doAll(0)" shape="circle" coords="205, 332, 6">
<area href="java script:void(null)" onMouseOver="doAll(41)" onMouseOut="doAll(0)" shape="circle" coords="228, 371, 6">
<area href="java script:void(null)" onMouseOver="doAll(42)" onMouseOut="doAll(0)" shape="circle" coords="193, 364, 6">
<area href="java script:void(null)" onMouseOver="doAll(43)" onMouseOut="doAll(0)" shape="circle" coords="232, 399, 6">

<area href="http://www.dansk-vin.dk" onMouseOver="doAll(50)" onMouseOut="doAll(0)" shape="circle" coords="119, 319, 6" alt="Skærsøgaard Vine" target="_blank">
<area href="java script:void(null)" onMouseOver="doAll(51)" onMouseOut="doAll(0)" shape="circle" coords="143, 318, 6">
<area href="java script:void(null)" onMouseOver="doAll(52)" onMouseOut="doAll(0)" shape="circle" coords="148, 360, 6">
<area href="java script:void(null)" onMouseOver="doAll(53)" onMouseOut="doAll(0)" shape="circle" coords="230, 190, 6">
<area href="java script:void(null)" onMouseOver="doAll(54)" onMouseOut="doAll(0)" shape="circle" coords="175, 217, 6">
<area href="java script:void(null)" onMouseOver="doAll(55)" onMouseOut="doAll(0)" shape="circle" coords="111, 221, 6">
<area href="java script:void(null)" onMouseOver="doAll(56)" onMouseOut="doAll(0)" shape="circle" coords="42, 195, 6">
<area href="java script:void(null)" onMouseOver="doAll(57)" onMouseOut="doAll(0)" shape="circle" coords="92, 138, 6">
<area href="java script:void(null)" onMouseOver="doAll(58)" onMouseOut="doAll(0)" shape="circle" coords="124, 64, 6" alt="dk-kort">
</map>
<div><img src="http://www.vinvej.dk/nye version/images/DK-kort_1.jpg" usemap="#FPMap0" alt="dk-kort"></div>


<div>Peg på en rød markering og se information om vinavler.</div>
<p id="descriptions"><b>&nbsp;</b>&nbsp;<br>&nbsp;</p>

<div>Hvis vingården er tilmeldt en vinvej, vises vinvejens navn i informationen.<br>
                <span class="style1">OBS! kræver Internet Explorer.</span></div>
</body>

</html>
Avatar billede Slettet bruger
26. maj 2010 - 14:05 #12
=> Ole
Ja, det ville være mest korrekt - men et helvede at tilrette (uden din enorme ekspertise)

Hvis f.eks. Kurt beslutter at tilføje lidt ekstra info til én af konkulegaerne
- såsom et <img logo> et telefonnummer eller en hel "smiley-ordning"
Avatar billede olebole Juniormester
26. maj 2010 - 14:05 #13
T4NK3R >> Firefox er den af browserne, der nu om stunder behandler innerHTML mest korrekt. For et år siden var det helt klart Explorer (og FF var en katastrofe), men nu er det åbenbart omvendt. Prøv dette lille dokument og se, om du stadig synes, innerHTML er en yndig sag at arbejde med:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
body {
    font: 12px verdana, sans-serif;
}
</style>
<script type="text/javascript">
function foo() {
    oCont.innerHTML += "<p>En tekst, der bliver skrevet til</p>";
    alert("Værdien af feltet: "+oInp.value);
    oInp.value = "En ny værdi";
    alert("Værdien af feltet: "+oInp.value);
}

var oCont = null, oInp = null;
window.onload = function(){
    oInp = document.getElementById("felt_A");
    oCont = document.getElementById("container");
}
</script>
</head>
<body>

<div id="container">
    <input id="felt_A" type="text">
</div>

<p>Skriv noget i feltet og tryk på knappen.<br>Tjek derefter koden og se, om du stadig synes, innerHTML er '<em>dejlig let at bruge og forstå</em>' &nbsp;<strong>;o)</strong></p>

<p><button onclick="foo()">TEST</button></p>

</body>
</html>
Avatar billede olebole Juniormester
26. maj 2010 - 14:09 #14
- og det kunne da være sjovt at høre, om du kan forklare, hvad der sker - hvorfor - og hvorfor det er korrekt, hvad der sker i Firefox  ;o)

Rigtig meget kan man sige om innerHTML - og det gør man! "Dejlig let at bruge og forstå" er der dog ikke mange, som kender og forstår innerHTML, der roser property'en for at være  =)
Avatar billede Slettet bruger
26. maj 2010 - 14:35 #15
Ja, HELT så hurtigt svarer jeg altså ikke, Ole : )

men her:

Det er endnu et eksempel på "vores konflikt"
Det "egentlige problem" med eksemplet er, efter min mening, at du sætter oInp "for tidligt"
- i stedet for dér hvor du faktisk har brug for den.

Jeg ville have skrevet dit eksempel således:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style type="text/css">
body {
    font: 12px verdana, sans-serif;
}
</style>
<script type="text/javascript">
function foo() {

    var oCont = document.getElementById("container");
    var oInp = document.getElementById("felt_A");

    var s = oCont.innerHTML;
    s += "<p>En tekst, der bliver skrevet til: "+oInp.value+"</p>";
    oCont.innerHTML = s
}

</script>
</head>
<body>

<div id="container">
    <input id="felt_A" type="text">
</div>

<p>Skriv noget i feltet og tryk på knappen.<br>Tjek derefter koden og erkend at innerHTML <strong>er</strong> '<em>dejlig let at bruge og forstå</em>'  <strong>;o)</strong></p>

<p><button onclick="foo()">TEST</button></p>

</body>
</html>
Avatar billede olebole Juniormester
26. maj 2010 - 15:13 #16
Nej, det er netop god kodeskik at undgå den slags redundante kald. Det er jo helt pløk at skulle lægge det samme element ned i en variabel igen og igen og igen ... og ...! definer variablen én gang - hold styr på den - og undgå at skyde dig selv i foden ved at overskrive den eller bryde referencerne til den.
Det står allerførst på første linje i forordet til 'Håndbog for programmører'  ;o)

Problemet er, at innerHTML er en ikke-standardiseret bastard fra årene med IE4 og NS4, hvor der ikke var andre muligheder. Den har absolut intet at gøre med grundtanken bag W3C's DOM, hvor alt er noder. Det er i øvrigt nok også derfor, du ikke finder innerHTML's 'ligemand' i andre programmeringsmiljøer eller -teknologier.

Læg da også mærke til, at innerHTML virker helt forskelligt i de forskellige browsere. Hvad er det lige, der er 'dejlig let og forståeligt' ved det? Er inkompatibilitet ikke lige præcis, hvad vi de sidste 10 år har prøvet at kæmpe os ud af?
Avatar billede olebole Juniormester
26. maj 2010 - 15:18 #17
- og din kode ændrer i øvrigt ikke ved, at feltet tømmes, når du skriver noget til det omkransende element. Du bryder også stadig referencen. Det betyder ganske vist ikke det store, hvis/når man ikke går efter at skrive effektiv kode og holde god kodeskik.

Det må du dog finde dig i, at jeg gør  =)
Avatar billede Slettet bruger
26. maj 2010 - 15:36 #18
Absolut. Og stor respekt for det.
- jeg er bare mere fokuseret på at skrive vedligeholdelsesvenlig kode end at følge lærebøgerne (som i øvrigt typisk skrives af folk med lidt for god tid)

Det betyder indkapsling af "ting" som hører sammen - også selvom jeg kommer til at gentage et par linjer hist og her.
Avatar billede olebole Juniormester
27. maj 2010 - 12:56 #19
Jamen, så er det da fuldstændig sort, at du koder på den måde.

Her er der netop ikke tale om, hvad der måtte stå i lærebøger, skrevet af folk med for god tid.

Der er tale om best practice blandt professionelle webkodere og andre programmører, som ikke har tid til at forbinde diverse sår. Derfor gør de alt for at undgå at skyde sig selv i fødderne.

Prøv det. Det kan anbefales - og er ikke uden grund yderst populært blandt chefer, der er ansvarlige for firmaets bundlinje  ;o)
Avatar billede Slettet bruger
27. maj 2010 - 18:53 #20
Nu HAR jeg faktisk selv ca. 25 års professionel erfaring. Min kodestil er praktisk og effektiv.
- Jeg laver ganske få fejl og når det alligevel sker, er de lette at finde. It's a fact!

Lets examine the evidence:

function changetext(whichcontent){
    var oDescr = document.getElementById("descriptions");
    if (whichcontent) {
        oDescr.firstChild.firstChild.nodeValue = whichcontent[0];
        oDescr.firstChild.nextSibling.nodeValue = whichcontent[1];
        if (whichcontent.length>2) oDescr.lastChild.nodeValue = whichcontent[2];
        else oDescr.lastChild.nodeValue = "\u00a0";
    } else {
        oDescr.firstChild.firstChild.nodeValue = "\u00a0";
        oDescr.firstChild.nextSibling.nodeValue = "\u00a0";
        oDescr.lastChild.nodeValue = "\u00a0";
    }
}

eller

function changetext(whichcontent)
    {
    document.getElementById("descriptions").innerHTML = whichcontent
    }

Hvilken funktion ville du (eller din efterfølger) helst tilrette 2 år efter ?

- Hvis du ærligt mener at din løsning af det aktuelle problem er den bedste, tager du simpelthen fejl.
Det ville tage det meste af en dag at rette din (med confidence) - min SKAL slet ikke rettes : )

PS:
Selvfølgelig kan man ikke regne med at en "pointer" til et objekt, som sidenhen er overskrevet (med innerHTML) stadig kan bruges - Common sense. Det ændrer ikke ved det faktum, at innerHTML er:
Dejligt let at bruge og forstå - uanset om det er standard i elfenbenstårnet eller ej!
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