TinyMCE 4无法输入提供的插件文本字段

时间:2014-10-06 23:35:40

标签: javascript jquery tinymce tinymce-4

在JS(使用JQuery 1.11.1和几个JQuery插件,如form和ui)下使用TinyMCE 4.1.5。我使用的TinyMCE版本不是嵌入式JQuery版本。

编辑器很好,我可以直接输入它而不会出现问题。仅使用tinymce提供的插件,所有使用按钮或非文本字段控件的函数都可以正常工作。

但是,插件中的文本字段(例如链接或插入视频)不会让我输入字段或选择其他文本字段(因此它似乎是焦点问题)。

http://fiddle.tinymce.com/bzeaab/16有一个小提琴,这里是应用程序中更具体的初始化代码:

var _clear_css_cache;
_clear_css_cache = '/javascripts/canonical/tinymce/skins/lightgray/' +
                   'content.min.css?' +
                   new Date().getTime();

var _toolbar_1, _toolbar_2;
_toolbar_1 = 'formatselect, |, ' +
             'bold, italic, underline, strikethrough, ' +
                'subscript, superscript, |,' +
             'outdent, indent, blockquote, |,' +
             'alignleft, aligncenter, alignright, alignjustify';

_toolbar_2 = 'bullist, numlist, table, charmap, emoticons |,' +
             'link, unlink, |,' +
             'image, media, |,' +
             'code, preview |,' +
             'pasteword, print |,' +
             'undo, redo,';

var _contextmenu;
_contextmenu = 'link image inserttable | ' +
               'cell row column deletetable';

tinymce.init({
  selector: 'textarea.tinymce',
  toolbar: [_toolbar_1, _toolbar_2],
  plugins: [
    'advlist autolink autosave code charmap contextmenu emoticons image', 
    'lists link media paste preview print table'
  ],
  contextmenu: _contextmenu,
  theme: 'modern',
  content_css: _clear_css_cache,
  menubar: false,
  statusbar: false,
  convert_urls: false,
  relative_urls: false,
  invalid_elements: 'script'
});

要插入目标div(带有' textarea.tinymce'的孩子),我使用非常标准的调用:

function do_wysiwyg(_div) {
  tinymce.execCommand('mceAddEditor', true, $(_div).attr('id'));
});

我尝试了几种本地浏览器和BrowserStack浏览器,并且没有一个插件文本字段可以在任何浏览器中使用,即使编辑器也可以。

另见using tinymce with blockui

思考?提前谢谢。

更新(2014年10月7日):想知道z-index是否在干扰,但到目前为止在实验过程中没有运气。这是一个非常古老的tinymce安装的升级,插件在那里运行良好,因此期望在tinymce代码/调用本身之外没有转换。

更新2(10/7/2014):现在有一个小提琴:http://fiddle.tinymce.com/bzeaab/16。似乎只在使用BlockUI时才会出现!我打赌现在有一个来自BlockUI的焦点陷阱。

1 个答案:

答案 0 :(得分:0)

一个似乎有用的解决方案是在.blockUI调用中传递bindEvents = false作为选项(以及msg等)。请参阅http://fiddle.tinymce.com/bzeaab/17了解原始小提琴({{3}修改了以允许插件工作。

我担心的是这种方法解除了blockUI覆盖中的所有内容,而不仅仅是tinymce插件,因此可能过于夸张。

如果您有更好的建议,请评论或发布不同的答案。在其他人有机会权衡之前,我不会接受这个答案。谢谢!