TinyMCE:onMouseUp上的图像选择(wordpress / contenteditable)

时间:2012-02-07 22:00:23

标签: javascript wordpress javascript-events tinymce contenteditable

我正在为Wordpress开发一个自定义的TinyMCE编辑器。 Wordpress的一个功能是图片标题,它在<div>标记周围加<img>

我正在努力实现以下目标:当用户点击<img>时,我想要选择父级。

为此,我在onMouseDown调度程序中添加了一个自定义处理程序,用于选择标题<div>

ed.onMouseDown.addToTop(function(ed, e) {

  // Check if it is an image or image with caption
  var parents = ed.dom.getParents(e.target,'div.amu_container');

  if ( parents.length > 0 ) {
    var container = parents[0];

    // Correct selection to amu_container
    ed.selection.select(container);

    // Prevent default
    tinymce.dom.Event.cancel(e);
  }
});

一切正常:在所有onMouseDown处理程序之后,标题<div>被很好地选中。

然后在mouseUp上一切正常,但在Chrome上,当所有onMouseUp处理程序完成后,<img>被选中,失去了标题<div>的先前选择。

但是mouseUp事件是defaultPrevented ...

有什么想法吗?

修改: 这是一个重现我的问题的jsfiddle:http://jsfiddle.net/nH8fj/5/

当用户点击图片或容器时,应选择整个<div>。在逐步调试中,有效地完成了选择,但只选择了图像。

我使用的是Chrome 16.0.912.36 linux,该错误可以在最新的镀铬窗口上重现。

1 个答案:

答案 0 :(得分:1)

e.target适用于webkit,但不适用于IE。在那里你必须使用e.srcElement。也许这里有与Chrome类似的问题。

我在这里找到了Chrome的错误报告:http://core.trac.wordpress.org/ticket/15848