单击伪元素时可以设置光标/插入符吗?

时间:2011-08-18 12:36:24

标签: javascript html css firefox tinymce

我将Pilcrow字符(无关紧要)设置为使用此css的段落后的元素

body.p:after {
    content:'\00b6'; // the used char or image does not matter
}

当我在body中的after元素之后单击时,光标/插入符号会根据需要放置在段落的末尾。但是当我点击after元素时,没有显示光标,输入一些字母也不起作用。

是否有解决方法?

1 个答案:

答案 0 :(得分:2)

这是我解决问题的方法。 OnClick我检查click事件的偏移是否等于最大textnodelength,以确定是否需要设置插入符号。 这里的目标是在单击after元素时将光标设置为实际段落的末尾。

ed.onClick.add(function(ed, evt){

  var node = ed.selection.getNode();

  // need to set Cursor onClick on after element?
  if (ed.controlManager.get('irhiddenchars') && ed.controlManager.get('irhiddenchars').isActive() &&
  evt.target.nodeName.toLowerCase() == 'p'){
    if (node != evt.target) {
        ed.selection.setCursorLocation(evt.target, 0);
    }
    else {
        if (evt.rangeParent.nodeType == 3 && evt.rangeParent.textContent.length == evt.rangeOffset)
        {
            ed.selection.setCursorLocation(evt.rangeParent, evt.rangeOffset);
        }
    }
    // show Caret
    ed.focus();
  }
});