fire keyPressEvent in tinyMce - PullRequest
       15

fire keyPressEvent in tinyMce

4 голосов
/ 19 марта 2012

Я настраиваю tinyMCE в Moodle (электронное обучение). Я добавил кнопку на панели инструментов, которая устанавливает фокус в текстовой области и добавляет два знака доллара. Мне нужно поместить курсор между этими знаками, чтобы пользователь мог начать печатать между ними. Вероятно, лучший подход - просто нажать стрелку влево программно, не так ли? Но я не могу понять, как это сделать. Вот код:

tinyMCE.init({
mode : "textareas",
theme : "advanced",
theme_advanced_buttons1 : "mybutton,bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
plugins : 'inlinepopups',
setup : function(ed) {
    // Add a custom button
    ed.addButton('mybutton', {
        title : 'My button',
        image : 'img/example.gif',
        onclick : function() {
            ed.focus();
            ed.selection.setContent('$$');
        }
    });
}

}); Спасибо

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Это должно делать то, что вы хотите:

ed.addButton('mybutton', {
    title : 'My button',
    image : 'img/example.gif',
    onclick : function() {  
        ed.focus();
        ed.selection.setContent('$<span id="my_marker">\u200b</span>$');
        var $marker = $(ed.getBody()).find('#my_marker');
        ed.selection.select($marker.get(0));
        $marker.remove();
    }
});
1 голос
/ 19 марта 2012

Вы можете вызвать событие нажатия клавиши, используя следующий фрагмент.

var e = jQuery.Event('keypress');
e.keyCode = 37; //Left arrow keycode 
$(document).trigger(e);

Использование может быть что-то вроде

onclick : function() {
    ed.focus();
    ed.selection.setContent('$$');
    var e = jQuery.Event('keypress');
    e.keyCode = 37; //Left arrow keycode 
    $(document).trigger(e);
}
...