---
title: "Tabb i textarea"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/141052-tabb-i-textarea"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "saw"
published: "2006-01-17T18:11:15.000Z"
updated: "2006-01-19T18:47:50.000Z"
replies: 26
views: 846
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/141052-tabb-i-textarea"
---

# Tabb i textarea

_Sida 1 av 2._

## #1 — saw, 2006-01-17T18:11Z

Jag hittade en kodsnut, som skulle göra att man kunde tbba i en textarea, men jag får det inte att fungera...

```
<textarea rows="16" CLASS="SKUGGA" name="Lyrics" cols="64" 
onKeyDown="if( event.keyCode == 9) { InjectTab(this);return false};" >
</textarea>

function InjectTab(objTextArea)

{...}
{
    var objSelectedTextRange = document.selection.createRange();
    objSelectedTextRange.text = '    ' + objSelectedTextRange.text
}
</script>
```

Vad jag förstår så är det meningen att man skall kunna använda sig av
tabb-tangenten, men det går inte.

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

## #2 — Peter S, 2006-01-17T18:53Z

Vad är det som inte fungerar? Här är en FF-kompatibel version:

```
function InjectTab(objTextArea)
{
    if (document.selection && document.selection.createRange){
	var r = document.selection.createRange();
	r.text = "        ";
    } else if (objTextArea.selectionStart && objTextArea.selectionEnd){
	objTextArea.value = objTextArea.value.substring(0, objTextArea.selectionStart)
		+ "        "
		+ objTextArea.value.substring(objTextArea.selectionEnd);
    }
}
```

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

## #3 — saw, 2006-01-17T19:20Z

Hej. Jag vet inte om jag gör fel, eller hoppas på "rätt sak", men tanken var ju att jag 
skulle kunna använda mig av tabbar i en textarea med hjälp av tabb-tangenten.
Detta fungerar inte för mig ens med din fina kod.Vad som händer är att den markera klnappar adressfönster länkar osv, men någon tabbning i textarean det får jag inte.

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

## #4 — Peter S, 2006-01-17T19:39Z

Bifogar ett exempel. Spara som .html och testa.

Bilagor:

- [saw.txt](https://www.webforum.nu/a/9286.txt)

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

## #5 — saw, 2006-01-17T22:22Z

Hej Peter.
Jo men visst, dit script fungerar, det ser jag nu, men problemet har jag 
märkt, är att jag har ett annat script, och det vill tydligen inte fungera ihop.

Så här ser det ut:

```
<script language="Javascript1.2"><!-- // load htmlarea
_editor_url = "";                     // URL to htmlarea files
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac')        >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Opera')      >= 0) { win_ie_ver = 0; }
if (win_ie_ver >= 5.5) {
 document.write('<scr' + 'ipt src="' +_editor_url+ 'editor.js"');
 document.write(' language="Javascript1.2"></scr' + 'ipt>');
} else { document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); }
// -->
</script>
```

Det här gör att jag lätt kan formatera texten, alltså en webbeditor.
Kan man ändra någonting här så att det fungerar??

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

## #6 — Peter S, 2006-01-17T22:24Z

Hur ser .js-filen ut som länkas in i ovanstående?

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

## #7 — saw, 2006-01-17T22:36Z

Så här (som du ser så la jag till .txt för att kunna ladda upp filen.

Bilagor:

- [editor.js.txt](https://www.webforum.nu/a/9291.txt)

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

## #8 — Erik Juhlin, 2006-01-18T07:54Z

Är det i en WYSIWYG editor du vill kunna tabba?

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

## #9 — saw, 2006-01-18T09:10Z

Ja det stämmer. Det hadde tillfört väldigt mycket om jag hadde kunnat tappa. Editorn
 heter HTMLarea.

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

## #10 — @nders, 2006-01-18T09:29Z

> Editorn heter HTMLarea.

Det hade tillfört mycket om du sagt det från början. ;-)

Eftersom jag också använder HTMLArea så noterade jag att det inte går att tabba hos mig heller, så då var det väl lika bra att fixa det, kan man tycka. I filen htmlarea.js finns ett bortkommenterat block som ser ut så här:

```
	/*
	else if (keyEvent) {
		// other keys here
		switch (ev.keyCode) {
		    case 13: // KEY enter
			// if (HTMLArea.is_ie) {
			this.insertHTML("<br />");
			HTMLArea._stopEvent(ev);
			// }
			break;
		}
	}
	*/
```

Precis efter det lade jag således till ett block:

```
	else if (keyEvent) {
		switch (ev.keyCode) {
		    case 9: // tab-stuff
			{ 
			this.insertHTML("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
			HTMLArea._stopEvent(ev);
			break;
			}
			
		}
	}
```

Nu har jag visserligen ingen aning om huruvida detta kommer fungera i din version / implementation av HTMLArea, men jag tror det.

/a

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

## #11 — saw, 2006-01-18T16:28Z

Hej och tack för att du försöker att hjälpa mig. Jag kan dock inte hitta det avsnittet 
som du beskriver. Min produkt är:
 htmlArea v2.03 - Copyright (c) 2002 interactivetools.com, inc.

Vad jag förstår så går det inte längre att hitta någon modernare vertin?
Är det kört nu??

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

## #12 — Peter S, 2006-01-18T16:56Z

Leta upp editor_event() och testa med att ersätta den med:

```
function editor_event(objname,runDelay) {
  var config = document.all[objname].config;
  var editor_obj  = document.all["_" +objname+  "_editor"];       // html editor object
  if (runDelay == null) { runDelay = 0; }
  var editdoc;
  var editEvent = editor_obj.contentWindow ? editor_obj.contentWindow.event : event;

  // catch keypress events
    if (editEvent && editEvent.keyCode) {
      var ord       = editEvent.keyCode;    // ascii order of key pressed
      var ctrlKey   = editEvent.ctrlKey;
      var altKey    = editEvent.altKey;
      var shiftKey  = editEvent.shiftKey;

      if (ord == 16) { return; }  // ignore shift key by itself
      if (ord == 17) { return; }  // ignore ctrl key by itself
      if (ord == 18) { return; }  // ignore alt key by itself

      if (ord == 9) {
        editor_insertHTML(objname, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
	return;
      }

       // cancel ENTER key and insert <BR> instead
       //if (ord == 13 && editEvent.type == 'keypress') {
       //  editEvent.returnValue = false;
       //  editor_insertHTML(objname, "<br>");
       //  return;
       //}

      if (ctrlKey && (ord == 122 || ord == 90)) {     // catch ctrl-z (UNDO)
//      TODO: Add our own undo/redo functionality
//        editEvent.cancelBubble = true;
        return;
      }
      if ((ctrlKey && (ord == 121 || ord == 89)) ||
          ctrlKey && shiftKey && (ord == 122 || ord == 90)) {     // catch ctrl-y, ctrl-shift-z (REDO)
//      TODO: Add our own undo/redo functionality
        return;
      }
    }

  // setup timer for delayed updates (some events take time to complete)
  if (runDelay > 0) { return setTimeout(function(){ editor_event(objname); }, runDelay); }

  // don't execute more than 3 times a second (eg: too soon after last execution)
  if (this.tooSoon == 1 && runDelay >= 0) { this.queue = 1; return; } // queue all but urgent events
  this.tooSoon = 1;
  setTimeout(function(){
    this.tooSoon = 0;
    if (this.queue) { editor_event(objname,-1); };
    this.queue = 0;
    }, 333);  // 1/3 second

  editor_updateOutput(objname);
  editor_updateToolbar(objname);

}
```

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

## #13 — saw, 2006-01-18T18:34Z

Tyvärr, det hjälpte inte ;-(

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

## #14 — @nders, 2006-01-18T18:41Z

Vad händer / händer inte då?
Vad får du för felmeddelande (titta till exempel i javascriptkonsollen i firefox)

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

## #15 — Peter S, 2006-01-18T18:48Z

Det var jag som använde fel keyCode. Testa nu.

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

## #16 — saw, 2006-01-18T19:08Z

Har du editerat ditt inlägg?

Nu såg jag felmedellandet:
Rad 429 
Tecken 9
Fel 'objName' är odefinierad.
Kod 0

Jag utgår ifrån att det är en variabel som måste definieras, men jag kan som 
sagt inte java...

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

## #17 — Peter S, 2006-01-18T19:08Z

Oh, yeah!

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

## #18 — Peter S, 2006-01-18T19:14Z

...

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

## #19 — Peter S, 2006-01-18T19:15Z

\*inlägget uppdaterat igen\*

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

## #20 — saw, 2006-01-18T19:35Z

Tack, det börjar att fungera, men är inte helt ok.
Första gången som jag trycker på tabb-tangenten, du flyttar sig insättningspunkten i
 textarean som den ska, men nästa gång jag trycker så blev det som innan, den flyttar focus till först mina knappar sen till länk osv. Går det att få bort detta?

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/141052-tabb-i-textarea  
Nästa sida: https://www.webforum.nu/amne/javascript/141052-tabb-i-textarea/page2.md
