---
title: "Kunna lägga in text, smiley där markören befinner sig"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/135415-kunna-lägga-in-text-smiley-där-markören-befinner-sig/page2"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "margar-0"
published: "2005-10-07T15:05:00.000Z"
updated: "2008-01-31T07:42:58.000Z"
replies: 31
views: 2170
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/135415-kunna-lägga-in-text-smiley-där-markören-befinner-sig"
---

# Kunna lägga in text, smiley där markören befinner sig

_Sida 2 av 2._

## #21 — blåjeans, 2006-01-28T16:22Z

Blir det här nånstans då eller? 

```
<td colspan="2" bgcolor="#FFFFFF"><%=Link(RecSet("msg"))%></td>
```

 Det är väl där som texten man skrivit in visas sen?

Hela koden ser ut som nedan...

Jag får till det så att det lägger sig en liten smiley bredvid submitknappen, och klickar man på smileyn så hamnar det en i formuläret så det funkar ju så långt. Men det blir ingen bild av det när man postat inlägget sen, utan bara en vanlig smiley.

```
<%Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db

If Request.Querystring("do")= "" Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="10">
  <form method="post" action="<%=INC%>?do=add" name="gastbok"  onSubmit="return Gb()">
    <tr> 
      <td colspan="2" style="border-bottom: 1px solid #006666"><font size="3"><b>
	  <p><div align="center"><div class="titel">Gästbok / Guestbook</div></p></b></font>
	<p>&nbsp;</p>
	  </td>
	  </tr>
    <tr> 
      <td>Ditt namn / Your name:<br><input type="text" name="rubrik" size="25"></td>
	  <td>Plats / Location:<br><input type="text" name="namn" size="25"></td>
     </tr>
    <tr>
      <td>Din e-mail / Your e-mail:<br><input type="text" name="mail" size="25"></td>
      <td>Hemsida / Homepage:<br><input type="text" name="url" size="25"></td>
    </tr>
    <tr> 
      <td valign="top" colspan="2">Meddelande / Message:<br><textarea name="msg" cols="60" rows="8"></textarea></td>
    </tr>
    <tr> 
      <td colspan="2"><input type="submit" value="Skicka / Send">
	  <a href="#" onclick="smilie(' :) '); return false;">:)</a>
	  </td>
    </tr>
  </form>
</table>

<%Set Recset = Server.CreateObject("ADODB.Recordset")

Sidan = Request.QueryString("next")
If Sidan = "" then 
    sida = 1 
Else 
    sida = Sidan 
End If 

With RecSet
    .CursorLocation = 3
    .CacheSize = InlaggPerSida
End With

SQL = "Select * From gastbok Order By datum desc"
RecSet.Open SQL, Conn

If RecSet.EOF Then%>
<br>
<table border="0" width="400" align="center" cellpadding="3" cellspacing="0">
  <tr>
    <td><i>Ingen har skrivit i gästboken.</i></td>
  </tr>
</table>
<%Else%>
<br>
<%With RecSet
     .MoveFirst 
     .PageSize = InlaggPerSida
     .AbsolutePage = sida
End With

Sidor =  RecSet.PageCount
If Sidor > 1 Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #006666">
  <tr>
     <td valign="top" bgcolor="#D0F0D6">
     <%For Sid = 1 To Sidor
         If (Int(Sid)) = (Int(sida)) Then%><b><%=FixDigits(Sid,2)%></b><%Else%> <a href="<%=INC%>?next=<%=Sid%>"><%=FixDigits(Sid,2)%></a> <%End If
     Next%>
     </td>
   </tr>
</table>
<br>
<%End If
X = 0
Do While Not RecSet.EOF And X < RecSet.PageSize%>
<table border="0" width="400" align="center" cellpadding="5" cellspacing="0" style="border: 1px solid #006666">
  <tr>
    <td bgcolor="#D0F0D6" width="400"><b><%=Recset("rubrik")%></b> | <%=Recset("namn")%></td><td align="right" bgcolor="#D0F0D6" width="100"><img src="bilder/klocka.gif" border="0" alt="<%=FormatDateTime(RecSet("datum"),2)%> (<%=FormatDateTime(RecSet("datum"),4)%>)"> <%If RecSet("url") <> "" Then%><a href="<%=RecSet("url")%>" target="_blank"><img src="bilder/homepg.gif" border="0" alt="<%=RecSet("url")%>"></a> <%End If%><%If RecSet("mail") <> "" Then%><a href="mailto:<%=RecSet("mail")%>"><img src="bilder/email.gif" border="0" alt="<%=RecSet("mail")%>"></a><%End If%></td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#FFFFFF"><%=Link(RecSet("msg"))%></td>
  </tr>
<%If Recset("svar") <> "" Then%>
  <tr> 
    <td colspan="2" bgcolor="#FFFFFF" align="center">
		<table><tr><td width="250" style="border-bottom: 1px solid #990033">&nbsp;</td></tr></table>
	</td>
  </tr> 
  <tr>
    <td colspan="2" bgcolor="#FFFFFF"><b>Svar:</b> <i><%=Replace(RecSet("svar"), vbCrLf, "<br>")%></i></td>
  </tr>
<%End If%>
</table>
<br>
<%X = X+ 1 
Recset.MoveNext
Loop
If Sidor > 1 Then%>

<table border="0" width="400" align="center" cellpadding="3" cellspacing="0" style="border: 1px solid #006666">
  <tr>
     <td valign="top" bgcolor="#D0F0D6">
     <%For Sid = 1 To Sidor
         If (Int(Sid)) = (Int(sida)) Then%><b><%=FixDigits(Sid,2)%></b><%Else%> <a href="<%=INC%>?next=<%=Sid%>"><%=FixDigits(Sid,2)%></a> <%End If
     Next%>
     </td>
   </tr>
</table>

<%End If
Recset.Close
Set Recset = Nothing
End If

ElseIf Request.QueryString("do") = "add" Then

   Namn       = Request.Form("namn")
   rubrik      = Fixa(Request.Form("rubrik"))
   Mail          = Request.Form("mail")
   Msg	        = Fixa(Request.Form("msg"))
   Ip   	  = Request.Servervariables("REMOTE_ADDR")
   Url   	  = Request.Form("url")
   If Url <> "" Then
     If Left(Url,7) = "http://" Then
       Url = Url
     Else
       Url = "http://" & Url
     End If
   End If

   Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
   Response.Redirect INC
End If

Conn.Close
Set Conn=Nothing%>
</table>
</div>
```

Permalänk: https://www.webforum.nu/p/1755230

## #22 — Peter S, 2006-01-28T17:03Z

Ja, det är Link(RecSet("msg")) vi måste operera på. Hur ser Link() ut?

 :)

Permalänk: https://www.webforum.nu/p/1755247

## #23 — blåjeans, 2006-01-28T18:48Z

Aah, då var jag inte helt borta ändå!   :D 

Hmm... är det det här du menar?

```
Function Link(strText)
   strText = Server.HTMLEncode(strText)

   Set regExp = New regexp

   regExp.Global = true
   regExp.IgnoreCase = true

   regExp.Pattern = "(http://|www)([\S]*)"
   strText = regExp.Replace(strText,"<a href=""http://$1$2"" target=""_blank"">$1$2</a>")

   regExp.Pattern = "(ftp://)([\S]*)"
   strText = regExp.Replace(strText,"<a href=""$1$2"" target=""_blank"">$1$2</a>")

   regExp.Pattern = "([\S]*@[\S]*[.se|.com|.nu|.net|.org])"
   strText = regExp.Replace(strText,"<a href=""mailto:$1"" target=""_blank"">$1</a>")

   regExp.Pattern = "([.|,|!|?|:|;|)|\|&]]*)</a> "
   strText = regExp.Replace(strText,"</a>$1 ")

   regExp.Pattern = "([.|,|!|?|:|;|)|\|&]]*)"" target=""_blank"">([^<]*)</a>"
   strText = regExp.Replace(strText,""">$2</a>")

   strText = Replace(Trim(strText),vbCrLf, "<br>")
   strText = Replace(Trim(strText),"http://http://", "http://")

Link = strText 				' Skriver ut texten, uppdelad och fin!

End Function
```

Permalänk: https://www.webforum.nu/p/1755276

## #24 — Peter S, 2006-01-28T22:35Z

Japp  :) 

```
function smiley(s)
    dim re
    set re = new regexp
    
    re.global  = true
    
    re.pattern = " :\) "
    s = re.replace(s, "<img src=""smile.gif"">")
    
    'för att ersätta andra smiley-tecken gör du på liknande sätt:
    're.pattern = " ;\) "
    's = re.replace(s, "<img src=""filnamn.gif"">")
    
    smiley = s
end function
```

Sedan anropar du smiley() på den text där du vill ersätta förekomster av ' :) ' med smileybilder. I ditt fall kan det se ut så här:

```
<%=smiley(Link(RecSet("msg")))%>
```

Permalänk: https://www.webforum.nu/p/1755369

## #25 — blåjeans, 2006-01-29T19:35Z

Okej... nu har jag nog rört ihop allting här tror jag.
Ska det där stå typ direkt under Link()? Och den andra strängen, jag har ju en som ser ut såhär: \<%=Link(RecSet("msg"))%\>. Var sätter jag "smiley-strängen" i förhållande till det? 

Åhh, vad rörigt det blir. Men nu när jag har kommit så här långt vill jag ju inte ge upp heller!!   :r

Permalänk: https://www.webforum.nu/p/1755715

## #26 — Peter S, 2006-01-29T19:57Z

Ja, lägg smiley() direkt under Link():

```
function Link()
...
end function

function smiley()
...
end function
```

Jag glömde Link() allra sist i mitt förra inlägg  :r 

```
<%=smiley(Link(RecSet("msg")))%>
```

Lycka till!  :)

Permalänk: https://www.webforum.nu/p/1755720

## #27 — blåjeans, 2006-01-29T20:40Z

Nu tror jag det mesta funkar, det är bara ett problem kvar! Det blir ingen smileybild i inlägget, jag fattar inte riktigt vart jag ska lägga det här. 

```
<%
dim t
t = request.form("t") & ""

if len(t) > 0 then
  dim re
  set re = new regexp

  re.global  = true
  re.pattern = " :\) "

  t = re.replace(t, "<img src=""smile.gif"">")
  'om det är fler smilies som skall göras om
  '
  're.pattern = " ;\) "
  't = re.replace(t, "<img src=""filnamn.gif"">")
  'o s v

  response.write "<div style=""padding:5px; border:1px solid #999; background:#eee"">" & t & "</div>"

  set re = nothing
end if
%>
```

Du skrev att jag ska lägga det där jag vill att texten från formuläret ska synas. Det måste ju vara i samma tabellrad som det andra då? 

```
<td colspan="2" bgcolor="#FFFFFF"><%=smiley(Link(RecSet("msg")))%></td>
```

Det är nog bara det som fattas nu... tror jag...   :)

Permalänk: https://www.webforum.nu/p/1755731

## #28 — Peter S, 2006-01-29T20:56Z

I o m funktionen smiley() behöver du inte använda den koddelen.

Angående smileybilden: har du skapat en bild smile.gif? Sedan, funktionen är inställd på att ersätta ' &#58;) ' inklusive de två mellanslagen.

Permalänk: https://www.webforum.nu/p/1755733

## #29 — blåjeans, 2006-01-29T22:54Z

Nu har jag fått till det!! Tack snälla för hjälpen!!!!!!!   :)   :f   :f   :f   :f 

(och till wF för smileysarna... ;) )

Permalänk: https://www.webforum.nu/p/1755768

## #30 — Peter S, 2006-01-29T22:55Z

Weee!  :bire

Permalänk: https://www.webforum.nu/p/1755770

## #31 — MickeA.com, 2008-01-21T15:43Z

Tjena,
Nu drar jag upp en gammal tråd, men tänkte utnyttja det script som finns här:

```
<script type="text/javascript">
var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function sC() {
    cPos = document.selection.createRange().duplicate();
}

window.onload = function() {
    fObj = document.forms["form-edit-site"].elements["ot_text"];
//	fObj = document.getElementById('ot_text');

    if (ieC) {
	fObj.onclick  = function() { sC(); }
	fObj.onkeyup  = function() { sC(); }
	fObj.onselect = function() { sC(); }
    }
}

function makeBold(foo){
    if (ieC){
		if (typeof cPos != "undefined"){
			cPos.text = "[b]" + cPos.text + "[/b]";
		} else {
			fObj.value += "{bold}{/bold}";
		}
    } else if (typeof window.HTMLTextAreaElement != "undefined"){
		fObj.value = fObj.value.substring(0, fObj.selectionStart)
			+ "{bold}"
			+ fObj.value.substring(fObj.selectionStart, fObj.selectionEnd)
			+ "{/bold}"
			+ fObj.value.substring(fObj.selectionEnd);
    }
}
</script>
```

Jag har tre knappar ovanför en textarea (som heter *ot_text* btw.), med vilka man ska kunna infoga "forumkod" runt markerad text, dvs. \[ b\]\[ /b\] osv.

Mitt formulär laddas in med Ajax, problemet är att jag hela tiden får "makeBold is not defined".

Jag har ändrat "fObj", så att det stämmer in på min textarea.
Måste jag ändra något mer för att få det här att fungera?

Tack!

Permalänk: https://www.webforum.nu/p/2071819

## #32 — Travoni, 2008-01-31T07:42Z

```
function makeBold(){
    if (ieC){
		if (typeof cPos != "undefined"){
			cPos.text = "[ b]"+cPos.text+"[/b]";
		} else {
			fObj.value += "[ b] [/b]";
		}
    } else if (typeof window.HTMLTextAreaElement != "undefined"){
		fObj.value = fObj.value.substring(0, fObj.selectionStart)
			+ "[ b]"
			+ fObj.value.substring(fObj.selectionStart, fObj.selectionEnd)
			+ "[/b]"
			+ fObj.value.substring(fObj.selectionEnd);
    }
};
```

Permalänk: https://www.webforum.nu/p/2076697

---

Tråden på webben: https://www.webforum.nu/amne/javascript/135415-kunna-lägga-in-text-smiley-där-markören-befinner-sig/page2  
Föregående sida: https://www.webforum.nu/amne/javascript/135415-kunna-lägga-in-text-smiley-där-markören-befinner-sig.md
