---
title: "Infoga text före och efter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/133364-infoga-text-före-och-efter"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "learn"
published: "2005-08-27T11:06:21.000Z"
updated: "2005-12-15T17:50:40.000Z"
replies: 26
views: 785
page: 1
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/133364-infoga-text-före-och-efter"
---

# Infoga text före och efter

_Sida 1 av 2._

## #1 — learn, 2005-08-27T11:06Z

Är det möjligt att, via en knapp, infoga text före och efter en markering i en textbox? Alltså ungefär som här på wF, fast man markerar ordet i texten istället för att mata in ordet i en dialogruta...

Förtydligande: Man markerar ett ord när man skriver ett inlägg. Man ska då kunna klicka på en knapp (t.ex. med namnet "Fet stil"), varvid \<strong\> infogas före markeringen och \</strong\> efter.

Någon som har ngt förslag??

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

## #2 — Peter S, 2005-08-27T11:24Z

Glöm inte att använda funktionen [acceptera som slutgiltigt svar](http://www.webforum.nu/misc.php?s=&action=faq&page=2#status) när problemet är löst

```
<script type="text/javascript">

var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function instxt(b, a) {
    if (ieC && cPos && cPos.text.length > 0){
	cPos.text = b + cPos.text + a;
    } else if (window.HTMLTextAreaElement && fObj.selectionEnd - fObj.selectionStart > 0){
	fObj.value = fObj.value.substring(0, fObj.selectionStart)
			+ b
			+ fObj.value.substring(fObj.selectionStart, fObj.selectionEnd)
			+ a
			+ fObj.value.substring(fObj.selectionEnd);
    }
}

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

window.onload = function() {
    fObj = document.forms["vbform"].elements["message"];

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

</script>

<a href="#" onclick="instxt('<strong>','</strong>'); return false;">strong</a>

<form name="vbform">
	<textarea cols="20" rows="5" name="message"></textarea>
</form>
```

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

## #3 — learn, 2005-08-27T11:40Z

Tack! Funkar bra, förutom att det markerade ordet dubliceras (en kopia av ordet placeras efter den önskade "taggen")... Det vill jag ju inte.. :)

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

## #4 — Peter S, 2005-08-27T11:43Z

En liten miss av mig. Inlägget ovan är redigerat.

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

## #5 — learn, 2005-08-27T11:47Z

Riktigt schysst, tackar! Nu vill jag även ha en knapp som öppnar ett dialogfönster och sedan skriver ut det inmatade i samma textarea.. Tacksam för din hjälp!

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

## #6 — Peter S, 2005-08-27T11:54Z

Like so?

```
function opendlg(obj){
    var w = window.open("about:blank", "dlg", "height=300, width=400");

    with (w.document){
	open();
	write(obj.form.elements["message"].value);
	close();
    }
}

<form name="vbform">
	<textarea cols="20" rows="5" name="message"></textarea>
	<button type="button" onclick="opendlg(this)">dlg</button>
</form>
```

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

## #7 — learn, 2005-08-27T11:59Z

Nja, man ska inte markera ett ord, utan vad jag menar är ganska precis vad som finns här på wF... kanske var lite otydlig. Alltså det ska vara exakt som tidigare, en länk, och när man trycker på den så ska en dialogbox öppnas och när man matar in ngt och klickar på OK så ska det inmatade skrivas ut i textarean...

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

## #8 — Peter S, 2005-08-27T12:02Z

Är det en prompt()\-ruta du är ute efter? Var skall det inmatade placeras?

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

## #9 — learn, 2005-08-27T12:04Z

jäpp, fast jag vill inte ha ett popup-fönster. jag vill ha en sån där dialogbox eller vad det kallas. precis som här på wF, när man lägger till ett ord i fet stil etc...

/Red: sorry :)

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

## #10 — learn, 2005-08-27T12:06Z

precis, confirm heter det ju. det inmatade vill jag ha sist..

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

## #11 — Peter S, 2005-08-27T12:09Z

:e 

Fast det jag menade var inte confirm(), utan prompt().

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

## #12 — Peter S, 2005-08-27T12:14Z

```
function opendlg(obj){
    var val = window.prompt("Mata in en text", "");

    if (val != null && val.replace(/(^\s+)|(\s+$)/g, "").length > 0){
	obj.form.elements["message"].value += val;
    }
}
```

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

## #13 — learn, 2005-08-27T12:22Z

Exakt, fast om jag vill ha en länk som inte ligger inom "form-taggen"... vad ska jag byta ut "this" till etc?

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

## #14 — Peter S, 2005-08-27T12:30Z

Då kan vi göra så här:

```
document.forms["namn_på_formulär"].elements["namn_på_<textarea>"].value += val;
```

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

## #15 — learn, 2005-08-27T12:43Z

Tack så mkt för hjälpen, nu har jag lärt mig en hel del! :stud

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

## #16 — Peter S, 2005-08-27T12:51Z

Varsågod!

Jag citerar mig själv: "[acceptera som slutgiltigt svar](http://www.webforum.nu/showthread.php?s=&postid=1082162&accept=yes)".

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

## #17 — learn, 2005-11-25T14:15Z

En liten tilläggsfråga:

Nu skapas ju en textsnutt längst ner i textarean. Hur kan man göra så att textsnutten skapas på det ställe som man har musmarkören på, går det?
Sedan så laddas ju sidan om när jag klickat på länken vilket medför att om jag skrivit ett långt inlägg i textarean och en scrollist kommit fram så åker ju scrollen upp till början av textarean, inte så bra.. Kan man göra så att scrollen fortfarande är "nerdragen"??

Tack för hjälpen!

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

## #18 — Peter S, 2005-11-25T14:36Z

Så?

```
<script type="text/javascript">

var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function instag(b, a) {
    if (ieC && cPos && cPos.text.length > 0){
	cPos.text = b + cPos.text + a;
    } else if (window.HTMLTextAreaElement && fObj.selectionEnd - fObj.selectionStart > 0){
	fObj.value = fObj.value.substring(0, fObj.selectionStart)
			+ b
			+ fObj.value.substring(fObj.selectionStart, fObj.selectionEnd)
			+ a
			+ fObj.value.substring(fObj.selectionEnd);
    }
}

function insdlgtxt(str){
    if (ieC){
	if (typeof cPos != "undefined"){
	    cPos.text = str;
	} else {
	    fObj.value += str;
	}
    } else if (typeof window.HTMLTextAreaElement != "undefined"){
	fObj.value = fObj.value.substring(0, fObj.selectionStart) + str + fObj.value.substring(fObj.selectionEnd);
    } else {
	fObj.value += str;
    }
}

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

function opendlg(){
    var val = window.prompt("Mata in en text", "");

    if (val != null && val.replace(/(^\s+)|(\s+$)/g, "").length > 0){
	insdlgtxt(val);
    }
}

window.onload = function() {
    fObj = document.forms["vbform"].elements["message"];

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

</script>

<a href="#" onclick="instag('<strong>','</strong>'); return false;">strong</a>

<form name="vbform">
	<textarea cols="20" rows="5" name="message"></textarea>
</form>

<a href="javascript:void(opendlg())">dlg</a>
```

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

## #19 — learn, 2005-11-25T14:55Z

Nej, nu tänkte jag på infoga-text-från-prompt... T.ex. Lägga till en länk som här på wF.

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

## #20 — Peter S, 2005-11-25T14:57Z

I mitt senaste inlägg ovan finns en länk längst ned som promptar för en text. Den texten skall förhoppningsvis läggas till där markören senaste befann sig.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/133364-infoga-text-före-och-efter  
Nästa sida: https://www.webforum.nu/amne/javascript/133364-infoga-text-före-och-efter/page2.md
