2010-11-23 5 views
1

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

Чтобы уточнить для тех, кто с тем же путаницей, что и респонденты ниже, я специально желаю присоединить событие к экземпляру TinyMCE.Editor, который создается библиотекой TinyMCE (например, класс, который, например, передан к обратному вызову, используемому в параметре настройки TinyMCE.init). Я хотел бы сделать следующий

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

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

+0

Что вы подразумеваете под «добавлением к экземпляру tinymce», вы хотите, чтобы его добавляли в экземпляр или на элемент html? – Thariama 2010-11-23 14:25:18

+0

Я имею в виду экземпляр редактора, созданный TinyMCE из тех элементов, на которые он активирован, и для которых созданы экземпляры объектов JavaScript TinyMCE.Editor (http://wiki.moxiecode.com/index.php/TinyMCE:API/ tinymce.Editor) – 2010-11-23 15:00:14

ответ

0

Хорошо, я был в состоянии получить эту работу, создав плагин, а затем добавить следующий очень взломать-й код в атрибуте 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

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

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

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

EDIT:

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

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

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

Смежные вопросы