单击和dblclick在同一个html上传递不同的parentNodes.为什么?



目前我正在开发一个基于jquery的非常小的wysiwyg编辑器。我不关心IE或Chrome,只关心Firefox。我的问题是查找所选内容是否在的链接中,以获取href属性if的值。单击即可找到链接的节点,双击始终可以找到正文。它处于designMode。

我的click和dblclick事件处理程序。vars current_selection、current_node、iframe和container是全局的。

selection_handler:function()
{
  current_selection = iframe.getSelection();
  current_node = current_selection.anchorNode;
  if(current_node.nodeName == "#text")
  {
    current_node = current_node.parentNode;
  }
  $('#log').text(current_node.nodeName);
},

日志显示mit,例如"body",当我点击未匹配的文本时。当我用execCommand("createLink",…)添加链接时,日志显示"a"。这很管用。当我用从开始到结束的2次点击标记链接单词时,日志显示"A"。但双击我总是得到"身体"。所以我无法获取href属性。

处理程序在init:中定义

init:function(options)
{
  ...
  iframe = $('#wysiwyg-'+container.attr('id'))[0].contentWindow;
  iframe.addEventListener('dblclick',methods.selection_handler,false);
  iframe.addEventListener('click',methods.selection_handler,false);
  ...
}

有人知道怎么了吗?

当你点击链接时,通常会选择完整的链接,选择会改变。

改为使用事件对象来确定单击了哪个元素:

selection_handler:function(e)
{
  current_selection = window.getSelection();
  current_node = e.target;
  //...more code
}

相关内容

  • 没有找到相关文章

最新更新