blear.utils.textarea

1Introduction

2Example

var textarea = require('blear.utils.textarea');

// 获取选区
var sel = textarea.getSelection(el);

// 设置选区
textarea.setSelection(el, [0, 100]);

3Static

3.1.getSelection(el): sel

获取 textarea 的当前选区。

3.1.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.1.2sel

  • 类型:Array
  • 说明:选区位置
    • Array[0]:选区开始位置
    • Array[1]:选区结束位置

3.2.setSelection(el, sel): undefined

设置 textarea 的选区。

3.2.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.2.2sel

  • 类型:Array
  • 说明:选区位置
    • Array[0]:选区开始位置
    • Array[1]:选区结束位置

3.3.getLineHeight(el): lineHeight

获取文本域的行高。

3.3.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.3.2lineHeight

  • 类型:Number
  • 说明:行高

3.4.getSelectionRect(el): ret

获取当前选区的坐标(相对于客户端)。

3.4.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.4.2ret

  • 类型:Array
  • 说明:坐标数组
    • Array[0].left:开始选区横坐标
    • Array[0].top:开始选区纵坐标
    • Array[1].left:结束选区横坐标
    • Array[1].top:结束选区纵坐标

3.5.focus(el, [offsetLines]): undefined

聚焦,会定位到文本选区的末尾,并偏移 N 行(如果在可视区域内则不会偏移)。

3.5.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.5.2offsetLines

  • 类型:Number
  • 说明:偏移行数
  • 默认:2

3.6.insert(el, text, [mode]): undefined

当前位置插入文本。

// ^你好,这个炫彩的世界!
textarea.insert(el, '你好,这个炫彩的世界!', 0);

// ^你好,这个炫彩的世界!^
textarea.insert(el, '你好,这个炫彩的世界!', 1);

// 你好,这个炫彩的世界!^
textarea.insert(el, '你好,这个炫彩的世界!', 2);

// 你好,^这个炫^彩的世界!
textarea.insert(el, '你好,这个炫彩的世界!', [3, 6]);

3.6.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.6.2text

  • 类型:String
  • 说明:文本

3.6.3mode

  • 类型:Number | Array
  • 说明:选区模式
    • 0:选区定位到文本开始
    • 1:选区选择到文本始末
    • 2:选区定位到文本结束
    • [start, end]:选择指定位置,注意该位置是相对于当前的文本的
  • 默认:2

3.7.wrap(el, before, after, mode): undefined

当前位置包裹文本。

// 原始文本:你好,这个^炫彩^的世界!
// 执行1次:你好,这个^【炫彩】^的世界!
// 执行2次:你好,这个^炫彩^的世界!
// 执行3次:你好,这个^【炫彩】^的世界!
textarea.insert(el, '【', '】', 0);

// 原始文本:你好,这个^炫彩^的世界!
// 执行1次:你好,这个^《炫彩》^的世界!
// 执行2次:你好,这个^《《炫彩》》^的世界!
// 执行3次:你好,这个^《《《炫彩》》》^的世界!
textarea.insert(el, '《', '》', 1);

3.7.1el

  • 类型:HTMLTextareaElement
  • 说明:textarea 元素

3.7.2before

  • 类型:String
  • 说明:包裹前文本

3.7.3after

  • 类型:String
  • 说明:包裹后文本

3.7.4mode

  • 类型:Number
  • 说明:包裹模式
    • 0:切换模式
    • 1:重复模式

4Dependencies

5Reference