webForumDet fria alternativet

innerHTML problem

JavaScript

9 svar · 291 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Har problem med ett script jag kör. Så här ser det ut:

<SCRIPT LANGUAGE="JavaScript">
<!--
function updateMessage()
{

<%

SQL = "Select * From chat Where [date] > #" & DateAdd("h",-12,Now) & "# Order By id Desc"
	Set RecSet = Connect.Execute(SQL)
	
X = 0
Do Until RecSet.EOF OR X = 21
	X = X + 1
	namn = Replace(server.HTMLEncode(RecSet("name")),vbCrlf,"")
	text = Replace(Free(server.HTMLEncode(RecSet("text"))),vbCrlf,"")
	text = Replace(text,"'","\'")
	text = " " & text
	
	If namn = "Andreas" Then
	namn = "<b><font color=""#000066"">[" & Mid(RecSet("date"),12,5) & "]</font>&nbsp;<font color=""#006600"">" & namn & "</font><font color=""#000000"">:&nbsp;</font> "&"</b>"
	Else
	namn = "<b><font color=""#000066"">[" & Mid(RecSet("date"),12,5) & "]</font>&nbsp;<font color=""#990000"">" & namn & "<font color=""#000000"">:&nbsp;</font> "&"</b>"
	End If
	Response.Write "parent.namn" & x & ".innerHTML = '" & namn & "'" & vbCrlf
	Response.Write "parent.text" & x & ".innerHTML = '" & text & "'" & vbCrlf 
	RecSet.MoveNext
Loop

RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing
%>

}
// -->
</SCRIPT>

Måste man ha den mellan head eller body?

Felet jag får är:

'parent.namn1' är null eller inte ett objekt

Medlem sedan juni 20004 308 inlägg
#2

Visa den kod som kommer fram till webbläsaren istället. Det är svårt att felsöka när man inte vet vad det är för data som bearbetas :)

Medlem sedan feb. 20011 498 inlägg
#3

Här är den koden som kommer fram till webbläsaren:


<html>
<head>
<meta http-equiv="refresh" content="10">
<style type="text/css">
input,textarea {font-family: Verdana; font-size: 10px;	font-weight: color: #000000; border: 1px solid black; background-color:#FFD987;
	}
</style>

</head>

<SCRIPT LANGUAGE="JavaScript">
<!--
function updateMessage()
{

parent.namn1.innerHTML = '<b><font color="#000066">[16:19]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text1.innerHTML = ' s&#228;nna'
parent.namn2.innerHTML = '<b><font color="#000066">[16:19]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text2.innerHTML = ' <b>persson kommer in</b>'
parent.namn3.innerHTML = '<b><font color="#000066">[16:17]</font>&nbsp;<font color="#990000">Poppo<font color="#000000">:&nbsp;</font> </b>'
parent.text3.innerHTML = ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!'
parent.namn4.innerHTML = '<b><font color="#000066">[16:16]</font>&nbsp;<font color="#990000">Poppo<font color="#000000">:&nbsp;</font> </b>'
parent.text4.innerHTML = ' hall&#229;!!!!!!!!!!!!!!!!!!!'
parent.namn5.innerHTML = '<b><font color="#000066">[16:16]</font>&nbsp;<font color="#990000">Poppo<font color="#000000">:&nbsp;</font> </b>'
parent.text5.innerHTML = ' x-box rullar'
parent.namn6.innerHTML = '<b><font color="#000066">[16:15]</font>&nbsp;<font color="#990000">Poppo<font color="#000000">:&nbsp;</font> </b>'
parent.text6.innerHTML = ' <b>Poppo kommer in</b>'
parent.namn7.innerHTML = '<b><font color="#000066">[16:15]</font>&nbsp;<font color="#990000">c0zmic<font color="#000000">:&nbsp;</font> </b>'
parent.text7.innerHTML = ' hej hej lalala &#228;r det n&#229;gon h&#228;r?'
parent.namn8.innerHTML = '<b><font color="#000066">[16:11]</font>&nbsp;<font color="#990000">c0zmic<font color="#000000">:&nbsp;</font> </b>'
parent.text8.innerHTML = ' <b>c0zmic kommer in</b>'
parent.namn9.innerHTML = '<b><font color="#000066">[16:09]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text9.innerHTML = ' n&#228;&#228;&#228;&#228;&#228;&#228;&#228;&#228; hej d&#229;!'
parent.namn10.innerHTML = '<b><font color="#000066">[16:09]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text10.innerHTML = ' 4 min till sedan drar jag'
parent.namn11.innerHTML = '<b><font color="#000066">[16:08]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text11.innerHTML = ' hehj hej!'
parent.namn12.innerHTML = '<b><font color="#000066">[16:08]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text12.innerHTML = ' <b>persson kommer in</b>'
parent.namn13.innerHTML = '<b><font color="#000066">[16:07]</font>&nbsp;<font color="#990000">niclas<font color="#000000">:&nbsp;</font> </b>'
parent.text13.innerHTML = ' <b>niclas kommer in</b>'
parent.namn14.innerHTML = '<b><font color="#000066">[16:00]</font>&nbsp;<font color="#990000">c0zmic<font color="#000000">:&nbsp;</font> </b>'
parent.text14.innerHTML = ' hall&#229;?'
parent.namn15.innerHTML = '<b><font color="#000066">[15:59]</font>&nbsp;<font color="#990000">c0zmic<font color="#000000">:&nbsp;</font> </b>'
parent.text15.innerHTML = ' hej hej hej.... =))'
parent.namn16.innerHTML = '<b><font color="#000066">[15:54]</font>&nbsp;<font color="#990000">c0zmic<font color="#000000">:&nbsp;</font> </b>'
parent.text16.innerHTML = ' <b>c0zmic kommer in</b>'
parent.namn17.innerHTML = '<b><font color="#000066">[15:52]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text17.innerHTML = ' D&#229; drar jag d&#229; <img src="smileys/wink.gif" alt="Ikon">'
parent.namn18.innerHTML = '<b><font color="#000066">[15:51]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text18.innerHTML = ' <img src="smileys/dead.gif" alt="Ikon">'
parent.namn19.innerHTML = '<b><font color="#000066">[15:51]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text19.innerHTML = ' N&#229;gon?'
parent.namn20.innerHTML = '<b><font color="#000066">[15:51]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text20.innerHTML = ' va?'
parent.namn21.innerHTML = '<b><font color="#000066">[15:51]</font>&nbsp;<font color="#990000">persson<font color="#000000">:&nbsp;</font> </b>'
parent.text21.innerHTML = ' <b>persson kommer in</b>'

}
// -->
</SCRIPT>

<body onload="document.chat_form.mess.focus();updateMessage();" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
            <form name="chat_form" method="post" action="chat_form.asp?do=add">
              
              <input type="text" name="mess" size="93" class="tabell" AUTOCOMPLETE="off">

<img src="bilder/hr.gif">
             
           
         
   </form>

        
</body>
Medlem sedan juni 20004 308 inlägg
#4

Finns alla de där elementen i parent-framen vid tillfället koden körs så funkar det. Antagligen har du inte skapat alla dessa element och då får du ett felmeddelande som talar om detta. Se bifogat exempel.

Medlem sedan feb. 20011 498 inlägg
#5

Jag har skrivit så här:

<div id=namn1></div>

och i ditt exempel står det så här:

<span id="namn1"></span>

Är mitt fel då eller?

Medlem sedan juni 20004 308 inlägg
#6

I html bör du använda citat-tecken, i xhtml måste du använda dem. Det finns egentligen anledning att inte använda det.

Medlem sedan feb. 20011 498 inlägg
#7

Men jag tänkte mest på att jag har skrivit div och du har skrivit span. Spelar det ingen roll vad man skriver eller?

Medlem sedan juni 20004 308 inlägg
#8

Båda elementen är containers och används för att markera ett visst innehåll. Skillnaden är att div är ett block-element och span är ett inline-element. Block-element får innehålla inline-element men inte vice versa. Detta kan du läsa mer om på w3c. En visuell skillnad ser du och du tittar på detta exempel i en webbläsare;

<div>En rad</div>
<div>En rad</div>
<div>En rad</div>

<span>På samma rad</span>
<span>På samma rad</span>
<span>På samma rad</span>
Medlem sedan feb. 20011 498 inlägg
#9

OK, men det blir fortfarande javascriptfel på den sidan jag visade tidigare i denna tråd.

Medlem sedan juni 20004 308 inlägg
#10

Jämför med exemplet jag skickade. Om samtliga element med de angivna id'na finns i parent-framen vid det tillfälle som koden körs fungerar det. Alltså 3 saker att kolla;

* Att samtliga element med de angiva id'na finns där (sammanlagt 42 st. (namn1,text1..namn21,text21))
* Att ovanstående finns i parent-framen.
* Att ovanstående stämmer vid det tillfälle som koden körs. Så att du inte har något timing-fel, ex. att javascript-koden ligger i ett dokument som ligger i en iframe som i sin tur laddas väldigt mycket tidigare från sitt källdokument så att elementen i första punkten inte hunnit blivit laddade än. (Av den anledningen har jag använda onLoad i det första dokumentet för att ladda det andra dokumentet i iframen om du tittar i exemplet. På så vis kan du vara säker att alla element (med id namn1, text1 osv) är laddade innan javascript-koden i underframen körs).

603 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
474 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)