ugrás a tartalomhoz

Textarea + Tab

Gixx · 2010. Dec. 6. (H), 12.10
Sziasztok!

Minden alkalommal, amikor hozzászólok egy-egy cikkhez és esetleg forráskódot is írok a colorer segítségével, akkor rendszerint a vakolatot is leátkozom a plafonról a Tab miatt, mivel reflexből igyekszek az olvashatóságra törekedni, de persze az alapértelmezett működés ezt nem teszi lehetővé.

Ezért azt szeretném kérni, hogy az alábbi kódrészletet illesszétek be a javascriptek közé, amennyiben ti is hasznosnak találjátok:
  1. $(function() {  
  2.     $('textarea').keypress(function(e){  
  3.         if(e.keyCode == 9){  
  4.             e.preventDefault();  
  5.             var pos = 0;  
  6.             var ctrl = $(this).get(0);  
  7.   
  8.             // get position  
  9.             if (document.selection) {  
  10.                 ctrl.focus ();  
  11.                 var Sel = document.selection.createRange ();  
  12.                 Sel.moveStart ('character', -ctrl.value.length);  
  13.                 pos = Sel.text.length;  
  14.             } else if (ctrl.selectionStart || ctrl.selectionStart == '0') {  
  15.                 pos = ctrl.selectionStart;  
  16.             }  
  17.   
  18.             var _pre = $(this).val().substring(0, pos);  
  19.             var _post = $(this).val().substring(pos);  
  20.             $(this).val(_pre+"\t"+_post)  
  21.   
  22.             //set position  
  23.             if(ctrl.setSelectionRange)  
  24.             {  
  25.                 ctrl.focus();  
  26.                 ctrl.setSelectionRange(pos+1,pos+1);  
  27.             }  
  28.             else if (ctrl.createTextRange) {  
  29.                 var range = ctrl.createTextRange();  
  30.                 range.collapse(true);  
  31.                 range.moveEnd('character', pos+1);  
  32.                 range.moveStart('character', pos+1);  
  33.                 range.select();  
  34.             }  
  35.   
  36.         }  
  37.     });  
  38. });  
... vagy ha szükség van az alapértelmezett működésre, akkor Shift+Tab-ra rakni. Vagy ilyesmi. Én speciel örülnék neki :D

Köszi!