2017-02-02 2 views
3

Я думал, что что-то подобное будет простым, но, по-видимому, нет. Я использую платную версию редактора Froala, и мне это нравится. Тем не менее, он должен фокусировать курсор, когда страница загружается внутри редактора, поэтому мне не нужно заставлять моих пользователей вручную щелкнуть по нему.Редактор Froala: курсор фокуса на загрузке страницы

Это код из их официальных документов, но он, похоже, не работает.

# HTML 
<textarea id="task_body" autofocus="true">...</textarea> 

# JavaScript 
editor = $("#task_body").froalaEditor({}); 
editor.froalaEditor("events.focus"); 

Все, что я хочу сделать, это сосредоточить курсор в поле редактора Froala при загрузке страницы; Я даже был бы доволен решением JS, которое вызывает событие фокуса после загрузки страницы.

+1

Я работал над той же проблемой в течение 2 дней. Все еще не удается найти решение, а примеры не работают. – Ruslan

+0

Привет. Вы нашли решение? Я нашел упоминание «events.focus» в документах API, но неясно, является ли это наблюдателем событий или инициирует событие - документ неубедителен. Я также видел взломанный сайт git на https://github.com/froala/wysiwyg-editor/issues/58. Тем не менее, это в 2014 году и относится к предстоящей функции. Так что же вы сделали в конце концов, пожалуйста? Также @ Руслан, что ты сделал? –

+1

@ VanquishedWombat Я пробовал код в вопросе и в github, никто не работал. Я также попытался просмотреть хотя бы html, чтобы посмотреть, могу ли я придумать взломать его, но ничего не получилось. – Ruslan

ответ

1

Чтобы установить фокус на Froala Init(), сделайте следующее:

$('div#froala-editor') 
.on('froalaEditor.initialized', function (e, editor) { 
    editor.events.focus(true); 
}).froalaEditor({ 
    ......editor init settings... 
}) 

При этом используется механизм JQuery событий, чтобы захватить froalaEditor.initialized событие, а затем пользователи переданному в объекте редактора, чтобы позвонить в фокусе ,

Чтобы назначить фокус программно, то есть в любое время после Froala инициализации(), используйте

$('selector').froalaEditor('events.focus', true). 

Например, здесь я использую задержку для имитации времени прохождения между Froala Init() и вызовом фокусировки:

setTimeout(function(){ 
    $('#edit').froalaEditor('events.focus', true); 
     console.clear() 
     console.log('fired focus trigger!') 
    }, 2000) 

Хотя это полезно знать, что это не суть текущей API документации Froala, которая не дает это понимание и, кажется, вместо того, чтобы намекнуть на синтаксисе будучи

$ ('# selector'). FroalaEditor ('events.trigger', 'focus');

, который я не мог получить, чтобы работать. Возможно, Фруала должен рассмотреть возможность уточнения документации.

Благодаря Стефану при поддержке Фроалы, который быстро ответил на мой призыв о помощи.

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