"Highlighting af input"-fejl.
Hej Alle!Jeg har et sindsygt irriterende problem, som jeg ikke kan finde årsagen til.
Jeg har flg. kode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
</head>
<body>
<script type="text/javascript">
debugCount=0;
String.prototype.debug= function() {
document.getElementById("debug").innerHTML+=debugCount+": "+this+'\n<br>';
++debugCount;
}
String.prototype.contains= function(arg) {
for(i=0;i<this.length;i++)
if(this.substring(i,i+arg.lenght)==arg) return true;
return false;
}
function sub() {
//init
area=document.forms[0].cont;
obj=document.getElementById("io");
obj.innerHTML="";
lines=area.value.split('\n');
table="<table style=\"border: none\">";
for(i=0;i<lines.length;i++)
{
dbg="i: "+i;
dbg.debug();
table+="<tr>";
if(lines[i].contains(":")) //linien er en 'person: besked' formateret streng.
{
table+="<td><b>"+lines[i].split(':')[0]+":</b></td>";
table+="<td>"+lines[i].split(':')[1]+"</td>";
}
else
{
table+="<td></td><td>"+lines[i]+"</td>";
table+="</tr>";
}
}
table+="</table>";
obj.innerHTML=table;
}
</script><form>
<table border="0"><tr>
<td>
<textarea style="font-family: arial;" name="cont" cols="100" rows="25" onkeyup="if(event.keyCode==13)this.value+='\n'">
En kommentar der ikke skal køres igennem linie 33;
person: hej js.
andenPerson: blabla
test: hej
</textarea></td><td valign=top><span style="font: normal normal bold 12px normal monospace;">Debug</span><br><span id="debug" style="font-family: monospace; font-size: 12px;"></span>
</td></tr>
<tr><td>
<button onclick="sub();">Formater</button
</form></td>
</tr>
</table>
<br>
<span id="io"></span>
</body>
</html>
Jeg tager det fra en ende af, så alle kan følge med.
string.prototype.debug gør at man kan "fejl".debug(). debugnummer+"fejl" vises så i debug-spannet som er under textareaet.
string.prototype.contains returnerer true hvis strengen indeholder argumentet, ellers false.
bagefter kommer sub() som køres når der klikkes på "formater".
den opretter area og obj som tekstareaet og io-spannet.
Den følgende løkke skal køre alle linier i textareaet igennem. Hvis en linie indeholder ":" går jeg ud fra at det er en linie formateret som "jonas: hej" (altså en replik). Hvis det er det lægges en row ind i tabellen der fremhæver jonas og putter hej ind i den 2. td.
Hvis IKKE at linien er af formatet jonas: hej, men i stedet for en kommentar, lægges kommentaren ind i td nr.2.
herefter lægges table ind i io-spannet.
Før virkede programmet nogenlunde, bortset fra at i (variablen) hele tiden ændrede sig til f.eks. 50.
Nu vil løkken kun gennemløbe en linie, og udskrive 'undefined' til table'n.
Programmet er til formatering af en sketch.
Håber at jeg har formuleret mig klart nok.
