Selection.js

9. srpna 2013

JavaScriptová knihovna pro práci s vybraným textem v elementu <textarea>.


Máte dvě možnosti použítí – buď budete volat jednotlivé funkce (getText,…) a předávat jim vlastní TextArea objekt, nebo použijete třídu TextAreaSelection.

var textarea = document.getElementById('my-textarea');

// Ruční volání funkcí
Cz.Selection.getText(textarea); // vrátí vybraný text
Cz.Selection.getLines(textarea); // vrátí vybrané řádky

// Použítí objektu
var selection = new Cz.Selection.TextAreaSelection(textarea);
selection.getText();
selection.getLines();

Samozřejmě musíte nalinkovat odpovídající soubory – základní CzSelection.js, případně i CzTextAreaSelection.js.

API

Knihovna nabízí následující funkce:

  • getText – vrátí vybraný text
  • getLines – vrátí vybrané řádky jako pole
  • getLength – vrátí délku vybraného textu
  • wrap – obalí vybraný text zadaným textem
  • unwrap – opak předchozího, snaží se chovat inteligentně, aby nebylo třeba vybírat celý obalený text, ale jen jeho část, nebo jen umístit kurzor mezi obalovací značky
  • wrapLines – obalí začátek a konec každého vybraného řádku, volitelně ignoruje počáteční a koncové mezery, tabulátory,…
  • unwrapLines – opak předchozí funkce, opět může volitelně ignorovat bílé znaky na záčátku a konci každého řádku
  • replace – nahradí vybraný text zadaným textem, případně volitelně vloží text na místo kurzoru
  • insert – vloží text na místo kurzoru/ konec současného výběru

TextAreaSelection navíc poskytuje metodu focus, která funguje jako zkratka pro textarea.focus().

Podpora prohlížečů

Knihovnu jsem testoval v Opeře 12.16, Firefoxu, Chrome. Bez problémů by měla fungovat i v Internet Explorer 9 a výš. Přidána byla i experimentální podpora pro starší Explorery, vyskytuje se tam několik drobných problémů (způsobených pravděpodobně tím, že IE počítá znaky \r\n někdy jako 1 znak, jindy jako 2 znaky. Zatím nemám čas a ani chuť to řešit).

Líbí se vám tato stránka?