5

我正在 iframe 中使用 designMode on 构建一个简单的所见即所得编辑器,目前我可以将所选文本设为粗体、斜体和下划线并链接,它们工作正常。

但我想知道, , , , 标签caret内的时间,所以我可以通知用户当前选择是粗体或其他。biua

例子:

Hello <b>Stackover|flow</b> is cool!= 你在b标签里面

<i>Be|st place</i>!= 你在i标签里面

Hello <a href="http://stackoverflow.com/">Go|od stuff!</a>= 你在a标签里面

请不要图书馆我想学习这些东西:)

4

1 回答 1

9

MSIE lte 8:TextRange.parentElement()

其他:DOMRange.commonAncestorContainer

<script type="text/javascript">
<!--
function fx()
{

  var target=null;
  if(window.getSelection)
  {
    target=window.getSelection().getRangeAt(0).commonAncestorContainer;
    return((target.nodeType===1)?target:target.parentNode);
  }
  else if(document.selection)
  {
    var target=document.selection.createRange().parentElement();
  }
  return target;
}
//-->
</script>
<input type="button" onclick="alert(fx().tagName)" value="click">
<div id="editor" contenteditable="true">
Hello <b>Stackoverflow</b> is cool! <i>Best place</i>
Hello <a href="http://stackoverflow.com/">Good stuff!</a>
</div>
于 2011-02-06T14:58:59.797 回答