Froala编辑器:加载页面时聚焦光标

4

我以为这样的事情很简单,但显然不是。我正在使用付费版本的Froala Editor,我非常喜欢它。然而,它需要在编辑器内加载页面时聚焦光标,这样我就不必强制用户手动点击了。

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

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

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

我希望页面加载后能够聚焦在Froala编辑器字段上,即便是JS解决方案也可以,只需要在页面加载后调用聚焦事件即可。


1
我已经花了两天时间解决同一个问题,但仍然找不到解决方案,示例也无法奏效。 - Ruslan
嗨,最终你找到解决方案了吗?我在API文档中发现了"events.focus"的提及,但不清楚它是事件观察者还是触发事件 - 文档不确定。我还看到了Git网站上的一个黑客https://github.com/froala/wysiwyg-editor/issues/58。然而,那是2014年的事,当时引用了一个即将推出的功能。那么最后你做了什么呢?还有@Ruslan,你做了什么? - Vanquished Wombat
1
@VanquishedWombat,我已经尝试过相关的代码和GitHub中的代码,但都没有成功。我还尝试查看HTML,看看是否可以想出一种方法来让它聚焦,但是什么都没用。 - Ruslan
感谢@Ruslan - 我也做了同样的事情,现在包括对新事件焦点函数的盲目尝试。我无法获得良好用户体验所需的内容。我已在他们的git上提出了一个案例。 - Vanquished Wombat
1
@Ruslan - 请看下面来自Froala支持团队Stefan的热点消息。 - Vanquished Wombat
1个回答

2
在Froala init()中设置焦点,请按以下步骤操作:
$('div#froala-editor')
 .on('froalaEditor.initialized', function (e, editor) {
  editor.events.focus(true);
}).froalaEditor({
  ......editor init settings...
})

这里使用jQuery事件机制来捕获froalaEditor.initialized事件,然后使用传入的editor对象调用focus方法。

如果需要在Froala初始化之后任何时间进行程序化地聚焦,可以使用以下方法:

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

例如,在这里我使用延迟来模拟Froala init()和focus调用之间经过的时间:
  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及时响应我的求助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接