TinyMCE在调用execCommand时窃取焦点

TinyMCE在调用execCommand时窃取焦点,tinymce,focus,execcommand,Tinymce,Focus,Execcommand,我的HTML页面上有一堆输入,加上一个文本区域,它被一个TinyMCE编辑器所取代。加载此页面的场景多种多样,每次一个输入必须获得焦点。但是当TinyMCE被初始化时,它只是窃取了焦点。我将问题缩小到一个execCommand调用,该调用在TinyMCE中设置默认字体大小 该问题可通过以下简化代码重现: <!DOCTYPE html> <html> <head> <script src="https://cdn.tiny

我的HTML页面上有一堆输入,加上一个文本区域,它被一个TinyMCE编辑器所取代。加载此页面的场景多种多样,每次一个输入必须获得焦点。但是当TinyMCE被初始化时,它只是窃取了焦点。我将问题缩小到一个execCommand调用,该调用在TinyMCE中设置默认字体大小

该问题可通过以下简化代码重现:

<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>
        <script>
            tinymce.init({
                selector: 'textarea',
                setup: function(editor) {
                    editor.on('init', function() {
                        this.execCommand("fontSize", false, "14pt"); // <<---- This line causes the TinyMCE editor to steal the focus!
                    });
                }
            });
        </script>
    </head>

    <body>
        <input id="inp" />
        <textarea>Hello, World!</textarea>
        
        <script>
            document.getElementById("inp").focus();
        </script>
    </body>
</html>

tinymce.init({
选择器:'textarea',
设置:函数(编辑器){
on('init',function(){

这个.execCommand(“fontSize”,false,“14pt”);//我知道我说过我不想在TinyMCE完成初始化后“再次”设置焦点,但我最终做了类似的事情。我没有在页面底部设置焦点,而是将代码移到了TinyMCE.init中,还调用了$(document).scrollTop(0);以下是代码:

tinymce.init({
    selector: 'textarea',
    setup: function(editor) {
        editor.on('init', function() {
            this.execCommand("fontSize", false, "14pt"); // <<---- This line causes the TinyMCE editor to steal the focus!
                        
            // Scroll to the top of the page.
            $(document).scrollTop(0);
            // Now set the focus.
            document.getElementById("inp").focus();
        });
    }
});
tinymce.init({
选择器:'textarea',
设置:函数(编辑器){
on('init',function(){

this.execCommand(“fontSize”,false,“14pt”);//当您发出更改字体大小的命令时,实际上并没有在TinyMCE编辑器中设置默认字体。您正在触发这些命令,但如果有任何内容要加载到编辑器中,则不会应用此字体信息

要在TinyMCE中设置默认字体信息,请通过
content\u CSS
content\u style
配置选项使用CSS:

下面是显示这两种方法之间差异的示例

在本例中:

…将发出用于设置默认字体系列和大小的命令,但这些命令不会应用于随后加载到编辑器中的内容。这些命令将被激发,但不会应用于加载到编辑器中的内容

鉴于,在本例中:


…默认字体信息将按预期通过CSS应用于加载的内容。

谢谢。但字体本身并不重要。我可以使用任何默认字体,但大小很重要。我们有大量高级用户希望使用更大的字体,不希望每次写m时都更改它因此,他们在个人资料中设置了首选字体大小,我们使用该大小作为默认大小。此外,设置字体名称并不能解决“焦点”问题。但感谢您花时间回答我的问题。干杯!:)除了字体大小之外,我还使用了字体名称,仅用于演示目的。您不必包括字体名称。但是,问题仍然存在,如果将任何内容加载到编辑器中,您用于设置默认字体大小的方法将不起作用。通过内容css或内容样式设置字体大小将解决此问题。我不想更改现有文本的字体大小。我只希望用户输入的新文本使用我正在设置的默认大小。它工作正常,除了焦点问题,该问题现在已通过我上面提到的解决方法得到修复。我是否仍然缺少一些内容?:)