---
title: "Flytta markör i textfält(wysiwyg)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/138257-flytta-markör-i-textfält-wysiwyg"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "mozilla"
published: "2005-11-25T19:37:55.000Z"
updated: "2005-11-26T10:40:26.000Z"
replies: 4
views: 440
page: 1
pages: 1
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/138257-flytta-markör-i-textfält-wysiwyg"
---

# Flytta markör i textfält(wysiwyg)

## #1 — mozilla, 2005-11-25T19:37Z

Jag håller på och bygger lite på en wysiwyg-editor, just nu bara i Firefox så jag är därför framförallt intresserad av kod som fungerar där. Jag vill sätta in egna html-kommandon i mitt textfält och sedan ställa markören efter insättningen. Att sätta in html-koden är inget problem. Problemet ligger i att text-markören hoppar till början av texten hela tiden. Det bästa vore om man kunde bestämma efter hur många tecken man ska placera in markören. Men någon sådan funktion har jag inte hittat. Något som känner till hur man löser det?

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

## #2 — Peter S, 2005-11-25T20:02Z

Testa:

```
var elm = document.forms["foo"].elements["bar"];
elm.setSelectionRange(4,4);
elm.focus();
```

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

## #3 — mozilla, 2005-11-26T03:00Z

Det verkar vara precis vad jag söker **men...** jag får det inte att fungera tillsammans med wysiwyg-editorn. x( För då använder man ju sig av en iframe och det finns en massa andra olika egenskaper. Jag har testat de flesta tycker jag men får det ändå inte att fungera. Någon som vet om det fungerar överhuvudtaget med "*setSelectionRange*" och i så fall hur man skriver?

Jag har under dagen testat mig fram men inte hittat en lösning som fungerar tillfredställande. Det går visserligen att lösa genom att använda [insertBefore](http://www.mozilla.org/docs/dom/domref/dom_el_ref47.html) och sedan skapa text-noder för texten och element-noder för kodtaggarna. Problemet är att den automatiskt slänger på en sluttagg också. Det vill jag inte. Utan jag vill bara lägga till en starttagg. Den enda lösningen som verkar gör detta är att ändra **innerHtml** på wysiwyg-editorn. Men då får jag problemet med att markören hoppar till början av texten.

Någon som har några fler/andra idéer på hur man kan göra? Mina börjar ta slut :OO 

[Hur wysiwyg fungerar i firefox](http://www.mozilla.org/editor/midas-spec.html)
[Exempel på en färdig wysiwyg](http://www.mozilla.org/editor/midasdemo/)

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

## #4 — Peter S, 2005-11-26T10:22Z

Om vi utgår från Mozillas demo; hur skall man klicka sig fram för att uppleva problemet du beskriver?

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

## #5 — mozilla, 2005-11-26T10:40Z

Det finns två olika scenarion i deras demo. Antingen att man helt enkelt skriver in en massa text, sedan ställer man markören mitt i och klickar på "bold". Då vill jag att en \<b\>-tagg ska starta där och göra all text bakom fet-markerad. Men som det fungerar nu så sätter den in \<b\>\</b\> med en gång. Och texten som man skriver hamnar mellan \<b\> taggarna.

Alternativt om man klickar på "insert table" så finns det en annan funktion för att infoga htmlkod och placera pekaren rätt(*insertNodeAtSelection*). Men den använder sig av *createElement("table")* och den skapar också automatiskt en start och en slutatagg. I funktionen kan man också använda sig av *container.insertData()*, men den sätter bara in ren tex och skriver därför *&lt;b&gt;*.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/138257-flytta-markör-i-textfält-wysiwyg
