2017-02-02 73 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

嗨 - 你最终找到了解决方案吗?我发现在API文档中提到了“events.focus”,但不清楚这是事件观察者还是触发事件 - 文档是不确定的。我还在https://github.com/froala/wysiwyg-editor/issues/58上看到了git网站上的黑客攻击。但是,到2014年,并提到即将发布的功能。那么你最后做了什么?另外@Ruslan你做了什么? –

+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的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应该考虑澄清文件。

感谢Stefan在Froala的支持下迅速响应我的电话寻求帮助。

相关问题