Skip to content

笔落写作编辑器开放API

这些API函数允许您在JavaScript脚本中控制文档编辑器的行为。所有函数都是全局可用的,无需导入。

文本操作

deleteText(options)

删除指定范围的文本。

参数:

  • start (number): 删除开始位置
  • end (number): 删除结束位置

示例:

javascript
// 删除位置10到20之间的文本
deleteText({ start: 10, end: 20 });

// 删除当前选中的文本
const start = getSelectionStart();
const end = getSelectionEnd();
deleteText({ start, end });

replace(options)

替换指定范围的文本。

参数:

  • start (number): 替换开始位置
  • end (number): 替换结束位置
  • text (string): 新文本内容

示例:

javascript
// 将位置0到5的文本替换为"标题"
replace({ start: 0, end: 5, text: "标题" });

// 替换当前选中的文本
const start = getSelectionStart();
const end = getSelectionEnd();
replace({ start, end, text: "新内容" });

选择操作

getSelectionStart()

获取当前选择的开始位置。

返回值:

  • number: 选择开始位置,如果编辑器不可用则返回-1

示例:

javascript
const startPos = getSelectionStart();
console.log(`选择开始于位置: ${startPos}`);

getSelectionEnd()

获取当前选择的结束位置。

返回值:

  • number: 选择结束位置,如果编辑器不可用则返回-1

示例:

javascript
const endPos = getSelectionEnd();
console.log(`选择结束于位置: ${endPos}`);

// 获取选中文本的长度
const selectionLength = getSelectionEnd() - getSelectionStart();

文本获取

getText()

获取编辑器中的所有纯文本内容。

返回值:

  • string: 编辑器的纯文本内容,如果编辑器不可用则返回空字符串

示例:

javascript
const content = getText();
console.log(`文档内容: ${content}`);

// 统计字符数
const charCount = getText().length;
console.log(`字符数: ${charCount}`);

段落操作

getParagraphAttributes()

获取当前段落的属性。

返回值:

  • object: 段落属性对象,如果编辑器不可用则返回空对象

示例:

javascript
const attrs = getParagraphAttributes();
console.log('当前段落属性:', attrs);

// 检查是否为标题
if (attrs.heading) {
  console.log(`这是${attrs.heading}级标题`);
}

setParagraphAttributes(options)

设置当前段落的属性。

参数:

  • attributes (object): 要设置的段落属性

示例:

javascript
// 设置为一级标题
setParagraphAttributes({ 
  attributes: { heading: 1 } 
});

// 设置为引用块
setParagraphAttributes({ 
  attributes: { blockquote: true } 
});

// 设置文本对齐方式
setParagraphAttributes({ 
  attributes: { textAlign: 'center' } 
});

位置检测

isAtParagraphStart()

检查光标是否位于段落开始处。

返回值:

  • boolean: 如果在段落开始处返回true,否则返回false

示例:

javascript
if (isAtParagraphStart()) {
  console.log('光标在段落开头');
  // 可以插入段落级别的格式
  setParagraphAttributes({ attributes: { heading: 1 } });
}

isAtParagraphEnd()

检查光标是否位于段落结束处。

返回值:

  • boolean: 如果在段落结束处返回true,否则返回false

示例:

javascript
if (isAtParagraphEnd()) {
  console.log('光标在段落末尾');
  // 可以添加新段落
  insertText({ offset: getSelectionEnd() });
}