---
title: "HTML-editor med stöd för alla webbläsare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/117258-html-editor-med-stöd-för-alla-webbläsare"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "skatan"
published: "2004-12-03T14:11:57.000Z"
updated: "2004-12-03T19:57:39.000Z"
replies: 3
views: 256
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/117258-html-editor-med-stöd-för-alla-webbläsare"
---

# HTML-editor med stöd för alla webbläsare

## #1 — skatan, 2004-12-03T14:11Z

Hittade denna koden här på Webforum.nu men skulle vilja ha så den funkar i alla webbläsare inte bara IE. Finns det någon vänlig själ som kan hjälpa mig med detta??

\<script language="JavaScript" type="text/javascript"\>
function addToSelection(before,after){
	if(document.selection.createRange().text){
		document.selection.createRange().text=before+document.selection.createRange().text+after;
	}
}
\</script\>
\<form method="POST"\>
        \<input type="Button" value="\<B\>" onClick="addToSelection('\<b\>','\</b\>');"\>
        \<input type="Button" value="\<I\>" onClick="addToSelection('\<i\>','\</i\>');"\>
        \<input type="Button" value="\<U\>" onClick="addToSelection('\<u\>','\</u\>');"\>
        \<br\>
        \<textarea name="Text1" Rows=8 Cols=70\>\</textarea\>
\</form\>

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

## #2 — Peter S, 2004-12-03T19:19Z

Det är svårt att få kod att fungera i "alla" webbläsare. Den jag bidrar med nedan bör i alla fall fungera i IE 5-6 samt NS6 och nyare.

```
function addToSelection(before,after){
    var ta = document.forms[0].elements["Text1"];

    if (document.selection && document.selection.createRange){
	var rng = document.selection.createRange();

	if (rng.parentElement() == ta)
	    rng.text = before + rng.text + after;
    }

    else if (typeof window.HTMLTextAreaElement != "undefined"){
	var sel = ta.value.substring(ta.selectionStart, ta.selectionEnd);

	if (sel != "")
	    ta.value = ta.value.substring(0, ta.selectionStart) 
		+ before + sel 
		+ after + ta.value.substring(ta.selectionEnd);
    }
}
```

 :)

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

## #3 — skatan, 2004-12-03T19:28Z

Tack för du tog dig tid Peter!

Skulle vara bra om lösningen funkar i Safari på Mac också.. de gör inte den där..

Sen att om man inte har någon text markerad att de ändå kommer ut taggar.

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

## #4 — Peter S, 2004-12-03T19:57Z

Safari har jag ej tillgång till, så jag kan inte testa mig fram. Du skulle kunna undersöka huruvida window.getSelection() ger någonting. Alternativt kan du testa att ta bort if-satsen *if (window.HTMLTextAreaElement...*, eller ersätta den med *if (ta.selectionStart && ta.selectionEnd)*.

För att kunna lägga till taggar utan att någon text är markerad, kan du låta Gecko-if-satsen se ut så här:

```
    else if (typeof window.HTMLTextAreaElement != "undefined"){
	ta.value = ta.value.substring(0, ta.selectionStart) 
	    + before + ta.value.substring(ta.selectionStart, ta.selectionEnd) 
	    + after + ta.value.substring(ta.selectionEnd);
    }
```

En IE-lösning har jag ingen metod för för tillfället.

 :)

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/117258-html-editor-med-stöd-för-alla-webbläsare
