TinyMCE在jqueryUI模式对话框中打开
在jQuery UI模式对话框中使用tinyMCE时,我无法使用超链接或“插入图像”功能。
基本上,经过大量的搜索,我发现这一点:
http://www.tinymce.com/develop/bugtracker_view.php?id=5917
奇怪的是,对我来说,它更少接触一个tinyMCE问题,更多的是jqueryUI问题,因为当jqueryUI的模态属性设置为false时问题不存在。
用更丰富的形式,我看到发生的情况是,只要tinyMCE失去焦点,表单中的第一个元素即使不是焦点/点击的焦点,也会获得焦点。
一些JavaScript大师是否有任何想法,我可能能够保持对话模式,并使tinyMCE工作?
这在重写_allowInteraction时不会:
$(document).on('focusin', function(e) {
if ($(event.target).closest(".mce-window").length) {
e.stopImmediatePropagation();
}
});
我真的不能相信它。 我从TinyMCE论坛的这个主题中获得了它。 (他们已经将他们的bug追踪器移至github。tinymce / issues / 703是相应的github问题。)
看来这个问题还没有解决方案。 这是一种黑客攻击,但它确实对我有用。 每次打开对话框时,请删除文本区域并重新添加它,如下所示,
var myDialog = $('#myDialog');
var myTextarea = myDialog.find('textarea');
var clonedTextArea = myTextarea.clone(); // create a copy before deleting from the DOM
var myTextAreaParent = myTextarea.parent(); // get the parent to add the created copy later
myTextarea.remove(); // remove the textarea
myDialog.find('.mce-container').remove(); // remove existing mce control if exists
myTextAreaParent.append(clonedTextArea); // re-add the copy
myDialog.dialog({
open: function(e1,e2){
setTimeout(function () {
// Add your tinymce creation code here
},50);
}
});
myDialog.dialog('open');
这似乎为我解决它,或者至少解决它(把它放在$(document).ready())的某个地方:
$.widget('ui.dialog', $.ui.dialog, {
_allowInteraction: function(event) {
return ($('.mce-panel:visible').length > 0);
}
});
链接地址: http://www.djcxy.com/p/61477.html
上一篇: TinyMCE opened in jqueryUI modal dialog
下一篇: Can't type in TinyMCE editor within a jQueryUI dialog box in joomla