TinyMCE: выбор изображения в onMouseUp (wordpress / contenteditable) - PullRequest
1 голос
/ 08 февраля 2012

Я работаю над собственным редактором TinyMCE для Wordpress.Одной из особенностей Wordpress является Image Caption, который ставит <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 все отлично работает на FF, но в Chrome, когда все обработчики onMouseUp завершены, выбирается <img>, теряя предыдущий выбор заголовка<div>.

Однако событие mouseUp является defaultPrevented ...

Есть мысли?

Редактировать: Вот jsfiddle, воспроизводящий мою проблему: http://jsfiddle.net/nH8fj/5/

Когда пользователь нажимает на изображение или контейнер, следует выбрать целое <div>.При пошаговой отладке выбор фактически выполняется, но затем выбирается только изображение.

Я нахожусь на Linux с хромом 16.0.912.36, ошибка может быть воспроизведена на последних хромированных окнах.

1 Ответ

1 голос
/ 08 февраля 2012

e.target работает на webkit, но не работает для IE.Там вам придется использовать e.srcElement.Возможно, здесь есть похожая проблема с Chrome.

Я нашел сообщение об ошибке для Chrome здесь: http://core.trac.wordpress.org/ticket/15848

...