Добавить событие OnMouseover в экземпляр редактора TinyMCE - PullRequest
1 голос
/ 23 ноября 2010

Я хотел бы добавить события onMouseOver и onMouseOut к экземпляру редактора в TinyMCE (через плагин), но, похоже, они не поддерживаются API TinyMCE.В частности, я хотел бы, чтобы элемент управления появлялся, когда элемент был наведен, чтобы переключать режим «только для чтения» (и, возможно, другие вещи).Должен ли я сам добавить код в TinyMCE для этого или он поддерживается каким-то неочевидным маршрутом?Если мне действительно нужно добавить код, есть ли какой-то запрет на поддержку этих событий, который служит основанием для их обоснования, не включив его в API?ниже я специально хочу присоединить событие к экземпляру TinyMCE.Editor, который создается библиотекой TinyMCE (класс, который, например, передается обратному вызову, используемому в параметре установки TinyMCE.init).Я хотел бы сделать следующее

tinyMCE.init({
  .
  .
  .
  setup : function(ed) { 
    TinyMCEReadOnlySetup(ed,true); 
    ed.onMouseOver.add(ShowButton(ed));
    ed.onMouseOut.add(HideButton(ed));
  },
  .
  .
  .
});

, но ed (экземпляр TinyMCE.Editor) не поддерживает MouseOver.add в духе подобных событий.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2010

Хорошо, я смог заставить это работать, создав плагин, а затем добавил следующий очень хакерский код в атрибуте init:

ed.onInit.add(function(ed){
                   .
                   .
                   .

    document.getElementById(ed.id + '_parent').setAttribute('onmouseover',
      "tinyMCE.editor_ShowButton('" + ed.id + "');");
    document.getElementById(ed.id + '_parent').setAttribute('onmouseout',
      "tinyMCE.editor_HideButton('" + ed.id + "');");
    //ed.getBody().appendChild(newdiv);
 });

Это не оптимальное решение, но оно получаетработа сделана.

0 голосов
/ 23 ноября 2010

Для переключения между режимом только для чтения и режимом редактирования вы можете использовать

ed.getDoc().designMode = "Off";

в своем собственном плагине.Кроме того, вы можете сохранить содержимое редактора и восстановить его, если запущен onChange.

РЕДАКТИРОВАТЬ:

Чтобы установить прослушиватель события наведения мыши, вы можете использовать

$('#' + ed.id +'_parent').bind('mouseover',function (evt){
   setTimeout("console.log('mouseover')",50);return false;
});

Вы можете сделать это в части onInit вашего плагина.

...