我认为这样的事情很简单,但显然不是。我正在使用Froala编辑器的付费版本,我喜欢它。但是,当页面在编辑器中加载时,它需要聚焦光标,所以我不必强迫我的用户手动点击它。
这是他们官方文档中的代码,但它似乎不起作用。
# HTML
<textarea id="task_body" autofocus="true">...</textarea>
# JavaScript
editor = $("#task_body").froalaEditor({});
editor.froalaEditor("events.focus");
我想要做的就是在页面加载时将光标聚焦在Froala编辑器字段中;我甚至对在页面加载后调用焦点事件的JS解决方案感到满意。
答案 0 :(得分:1)
要在Froala init()上设置焦点,请执行以下操作:
$('div#froala-editor')
.on('froalaEditor.initialized', function (e, editor) {
editor.events.focus(true);
}).froalaEditor({
......editor init settings...
})
这使用jquery事件机制来捕获froalaEditor.initialized事件,然后使用传入的编辑器对象来调用焦点。
要以编程方式指定焦点,意味着在Froala init()之后的任何时间,请使用
$('selector').froalaEditor('events.focus', true).
例如,在这里,我使用延迟来模拟Froala init()和焦点调用之间的时间传递:
setTimeout(function(){
$('#edit').froalaEditor('events.focus', true);
console.clear()
console.log('fired focus trigger!')
}, 2000)
虽然知道这一点很有用,但当前的Froala API文档并不能提供这种见解,而是提示语法
。$('#selector')。froalaEditor('events.trigger','focus');
我无法上班。也许Froala应该考虑澄清文档。
感谢Froala支持的Stefan,他迅速回应了我的求助电话。