获取光标位置或光标在 TinyMCE 中的行数
Get cursor position or number of line on which the cursor is in TinyMCE
如何获取TinyMCE中的光标位置或光标在TinyMCE中的行数?
这是我自己的一个插件中用于获取实际行号的函数的一部分:
var ed = tinymce.get('my_editor_id');
var bm = ed.selection.getBookmark();
var $marker = $(ed.getBody()).find('#'+bm.id);
var elem = ed.getDoc().getElementById(bm.id+'_start');
try {
box = elem.getBoundingClientRect();
}
catch(e)
{
// should not happen
console.log('error creating box: ' + e);
}
var doc = ed.getDoc(),
docElem = doc.documentElement,
body = ed.getBody(),
win = ed.getWin(),
clientTop = docElem.clientTop || body.clientTop || 0,
clientLeft = docElem.clientLeft || body.clientLeft || 0,
scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
top = box.top + scrollTop - clientTop,
left = box.left + scrollLeft - clientLeft;
// set Bookmark
ed.selection.moveToBookmark(bm);
var caret_line = Math.floor( (top) / lineHeight ) + 1;
函数getBoundingClientRect()
用于创建一个框,我们可以从中获取多个定位信息。请注意,我们需要使用标记元素并在稍后重置插入符号。
更新:行高信息
// get height of row: eighter line-height or min-height
if ( $(ed.getBody()).find('p:first').css('line-height') != 'normal'){
lineHeight = $(ed.getBody()).find('p:first').css('line-height') ;
}
else {
lineHeight = $(ed.getBody()).find('p:first').css('min-height');
}
var lineHeight = lineHeight.substr(0, lineHeight.length -2 );
相关文章:
- 自定义函数中的光标位置
- jQuery/Javascript>on单击将文本放置在最后一个已知的光标位置
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 内容可编辑分区-根据内部HTML位置的光标位置
- 保持光标位置元素在顶部使用 svg
- 保存键控触发器时保持光标位置的最佳做法
- 如何在java脚本中获取光标位置
- 获取光标位置或光标在 TinyMCE 中的行数
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 在Chrome中,光标位置异常地位于输入值的末尾
- 在光标位置的文本区域中插入一个字符串,并进行一些更改
- 如何从谷歌地图事件访问光标位置(即页面的x和y轴)
- 如何在网页加载asp.net上显示文本框中第二个字母的光标位置
- 当前光标位置(百分比)
- GWT:如何从当前光标位置或所选文本中获取css样式的属性
- 在光标位置插入HTML,并使用javascript将光标移动到插入的HTML的末尾
- jQuery:使用插件Tipsy将工具提示附加到鼠标光标位置
- 不带HTML的光标位置需要转换为带HTML的位置
- 如何从内容可编辑区域获取光标位置之前的文本
- 如何在Wysihtml5沙盒编辑器中的光标位置插入文本