按tab键时如何选择tinyMCE文本区域?

按tab键时如何选择tinyMCE文本区域?,tinymce,tabindex,Tinymce,Tabindex,你好 我得到了类似的代码 <form method="post" action="/" name="form" autocomplete="off"> <input type="text" name="title" /> <textarea name="body"></textarea> <input type="text" name="tags" /> <input type="submit" name="submit" val

你好 我得到了类似的代码

<form method="post" action="/" name="form" autocomplete="off">
<input type="text" name="title" />
<textarea name="body"></textarea>
<input type="text" name="tags" />
<input type="submit" name="submit" value="Send" />
</form>
文本区域为tinyMCE的位置。。。当我试图通过输入和文本区域项目移动选择时,问题就出现了。 加载页面时,它将焦点放在输入[name=text],但当我按Tab键时,它会选择输入[name=tags],而不是下一个文本区域[name=body]
你能帮我解决这个问题吗?

这在传统的选项卡索引中是不可能的,因为TinyMCE实际上隐藏了,并在编辑器中创建了一个。您可以通过在javascript中的前一个元素的模糊事件中强制将焦点放在编辑器上来解决问题,下面是我头顶上的ajQuery片段:

$('#prev-input').blur(function(){
    tinyMCE.get('textarea').focus();
});

然后,一旦用户离开上一个输入焦点,就会跳转到TinyMCE编辑器,您也可以添加一个模糊方法来进入下一个元素。

有一个插件解决了这个问题

我是从TinyMCE论坛上知道的


我通过在插件中添加“tabfocus”来解决这个问题,然后添加tabfocus\u元素::prev,:next


我需要来自页面上另一个元素的自定义选项卡顺序。我在IE11中用来解决这个问题的代码是

var button = $('#btn-id');
button.on('keydown', function (e) {
    if ((e.which === 9 && !e.shiftKey)) {
        e.preventDefault();
        $(tinyMCE.get()[0].contentWindow).focus();
    }
});
请注意,只有当页面上只有一个编辑器时,上述代码才能工作。否则,您必须遍历tinyMCE.get返回的数组,以找到正确的编辑器来设置焦点。

我发现正在触发焦点事件,但元素容器中的焦点始终不起作用

在我的例子中,我从编辑器1-4进行了tab操作,当我按住shift+tab键时,我失去了对实例的关注

为了解决这个问题,我在tinyMCE的设置事件中添加了以下内容

设置:functioneditor{ editor.onfocus,function{ e、 target.editorContainer.scrollIntoView; }; }
这听起来不错,但返回错误Uncaught TypeError:无法调用Undefine的方法“focus”,我认为它找不到textarea,因为tinyMCE对象存在。。。我尝试过在get中使用textarea的ID和名称而不是textarea,但仍然不起作用;请注意,如果您在一个页面上有多个编辑器,则activeEditor可能会引用另一个编辑器,即当您在编辑器nr 2中编写文本时,但在编辑器nr 1中单击一个按钮,则此代码不会在所有情况下都起作用。如果有两个以上的元素需要聚焦。例如,如果你的顺序是1-2-3。这意味着,如果你从1开始失去焦点,然后转到2,然后再转到3。但是如果你想直接从1到3,并试图点击3,那么焦点将设置为2而不是3。我试过这个,但也遇到了同样的问题。不幸的是,它在设置焦点时不起作用