Froala编辑器:将光标放在页面加载

时间:2017-02-02 04:49:39

标签: javascript setfocus froala

我认为这样的事情很简单,但显然不是。我正在使用Froala编辑器的付费版本,我喜欢它。但是,当页面在编辑器中加载时,它需要聚焦光标,所以我不必强迫我的用户手动点击它。

这是他们官方文档中的代码,但它似乎不起作用。

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

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

我想要做的就是在页面加载时将光标聚焦在Froala编辑器字段中;我甚至对在页面加载后调用焦点事件的JS解决方案感到满意。

1 个答案:

答案 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,他迅速回应了我的求助电话。