在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浏览器,并且没有一个插件文本字段可以在任何浏览器中使用,即使编辑器也可以。
思考?提前谢谢。
更新(2014年10月7日):想知道z-index是否在干扰,但到目前为止在实验过程中没有运气。这是一个非常古老的tinymce安装的升级,插件在那里运行良好,因此期望在tinymce代码/调用本身之外没有转换。
更新2(10/7/2014):现在有一个小提琴:http://fiddle.tinymce.com/bzeaab/16。似乎只在使用BlockUI时才会出现!我打赌现在有一个来自BlockUI的焦点陷阱。
答案 0 :(得分:0)
一个似乎有用的解决方案是在.blockUI调用中传递bindEvents = false
作为选项(以及msg
等)。请参阅http://fiddle.tinymce.com/bzeaab/17了解原始小提琴({{3}修改了以允许插件工作。
我担心的是这种方法解除了blockUI覆盖中的所有内容,而不仅仅是tinymce插件,因此可能过于夸张。
如果您有更好的建议,请评论或发布不同的答案。在其他人有机会权衡之前,我不会接受这个答案。谢谢!