Nogle kloge hoveder der kan fortælle mig hvordan man overføre et klik på et billede, til f.eks. et ':)' tegn i et givent texarea. både fra den aktuelle side, samt fra et popup-vindue.
Udover det kunne jeg godt tænke mig at vide hvordan man laver en replace, så den f.eks. tolker ':)' som ../img/smileys/happysmiley.gif når den læser fra databasen!
Replace() funktionen erstatter alle forkomster af :) med <img..> som er i rs("body").
Du udskriver rs("body") et sted i din kode nu (sikkert med <%= rs("body") %>). Der skal du bare smide replacen omkring (Så det bliver <%= replace(rs("body"),":)","<img...>"> %>)
Har du flere forskellige smilies?? F.eks :) = <img src='../gfx/smilies/10.gif'> ;) = <img src='../gfx/smilies/11.gif'> :D = <img src='../gfx/smilies/12.gif'>
For så skal der nok laves en special funktion til at udskifte dem.
Har lige fundet en version, som jeg heller vil bruge.
Min smiley billede ser sådan her ud: <td align="center"><img src='gfx/smilies/01.gif' id='smiley1' alt='Indsæt' title='Indsæt' onclick="addSmiley(':)');" style='cursor:hand;' /></td>
Mit textarea ser sådan her ud: response.write("<textarea id='smiliestextarea' name='body' cols='86' class='textareas' onselect='storeCaret(this);' onchange='storeCaret(this);countLetters(this);' onclick='storeCaret(this);' onkeydown='storeCaret(this);countLetters(this);' onkeyup='storeCaret(this);countLetters(this);'>"& body &"</textarea>")
Og min funktion ser sådan her ud: <!-- Spærring ved for mange tegn --> <script type='text/javascript'> function addSmiley(strTag){ var textEl = mainForm._smiliestextarea; if(textEl.createTextRange && textEl.caretPos){ var caretPos = textEl.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? strTag + ' ' : strTag; }else{ textEl.value = strTag; } } </script>
....Men kan ikke rigtigt få det til at virke. Kan du se hvad der er galt ?
function replaceSmily(funkText) dim funkTemp funkTemp = funkText&"" funkTemp = replace(funkTemp,":)","<img src='../gfx/smilies/10.gif'>") funkTemp = replace(funkTemp,";)","<img src='../gfx/smilies/11.gif'>") funkTemp = replace(funkTemp,":D","<img src='../gfx/smilies/12.gif'>") '... '... replaceSmily = funkTemp end function
Også skulle den kunne bruges som den er. Du skal bare tilføje alle de smilies du har til listen. Du skal være opmærksom på, at det ikke er ligemeget hvilken række følge de står i, hvis dele af en smily går igen i en anden.
F.eks :) *<():)
Der skal "*<():)" stå før :), ellers udskiftes :) delen af nissen med et billed, også findes "*<():)" ikke længre i teksten.
Men det virker stadig ikke. Bruger denne her nu: Men får følgende fejl i på denne linje: response.write("" & replaceSmily(rs("body")) & "")
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'replaceSmily'
/walid/pages/tagwall.asp, line 110
--- <!-- Spærring ved for mange tegn --> <script type='text/javascript'> function storeCaret(textEl) { if (textEl.createTextRange){ textEl.caretPos = document.selection.createRange().duplicate(); } }
var maxletters = 700; function countLetters(tbbody){ if(tbbody.value.length >= maxletters){ tbbody.value = tbbody.value.substring(0, maxletters); } document.getElementById('lettercount').innerHTML = (maxletters - tbbody.value.length); }
replaceSmily() er en ASP funktion og skal først bruges når du udskriver teksten fra databasen igen, så den skal slet ikke være sammen med addSmiley() funktionen som er en JavaScript funktion. Desuden skal de stå i ASP koden så den skal være inde i en <% %> blok.
If RS.EOF then response.write("Ingen beskeder fundet i databasen") else do while not RS.EOF and count < antal_beskeder_pr_side if start > 0 then start = start - 1 else
If blnBGColor = True Then strBGColor = "#EFF7FF" blnBGColor = False Else strBGColor = "#F8F8F8" blnBGColor = True End If
Det er den forkerte function du har fået ind. Der var jo fejl i de første. Du skal bruge denne, ellers er det kun veryangry smily der bliver udskiftet:
Har fundet ud af det ----- Function replaceSmilies(s)
If (Len(s) = 0) Then replaceSmilies = "" Exit Function End If
s = replace(s,":nice:","<img src='../walid/gfx/smilies/01.gif'>") s = replace(s,":angry_gangster:","<img src='../walid/gfx/smilies/02.gif'>") s = replace(s,":soldier:","<img src='../walid/gfx/smilies/03.gif'>") s = replace(s,":whatever:","<img src='../walid/gfx/smilies/04.gif'>") s = replace(s,":suprised:","<img src='../walid/gfx/smilies/05.gif'>") s = replace(s,":sarcastic:","<img src='../walid/gfx/smilies/06.gif'>") s = replace(s,":dead:","<img src='../walid/gfx/smilies/07.gif'>") s = replace(s,":star:","<img src='../walid/gfx/smilies/08.gif'>") s = replace(s,":disgusting:","<img src='../walid/gfx/smilies/09.gif'>") s = replace(s,":)","<img src='../walid/gfx/smilies/10.gif'>") s = replace(s,":sad:","<img src='../walid/gfx/smilies/11.gif'>") s = replace(s,":veryangry:","<img src='../walid/gfx/smilies/13.gif'>")
replaceSmilies = s
End Function
Mange tak for hjælpen! Ligger du lige et svar - så du kan få point?
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.