我在JQuery UI模式对话框中运行一个tinyMCE编辑器。一切都运行正常,除了那些本身打开一个新模态(例如链接)的tinyMCE的功能。这些模态显示正常,但输入区域不可编辑。 根据Firebug,js代码是可以的,HTML非常简单。
它可能来自哪里?
编辑:
<script type="text/javascript">
tinymce.init({
selector: "textarea",
plugins: "autolink link table textcolor",
menubar: false,
toolbar: "undo redo | styleselect | forecolor backcolor | bold italic | link unlink | table"
});
$(document).ready(function(){
$(".sendmail")
.button({
icons: {
primary: "ui-icon-mail-closed"
},
text: false
})
.click(function(){
$("#sendmailform").dialog("open");
})
;
$(function(){
$("#sendmailform")
.dialog({
autoOpen: false,
title: "Send mail confirmation",
modal:true,
width: 750,
[buttons & ajax]
})
;
});
});
</script>
答案 0 :(得分:2)
来自http://www.tinymce.com/develop/bugtracker_view.php?id=5917
对于jQuery UI对话框,您可以这样做:
$.widget("ui.dialog", $.ui.dialog, {
_allowInteraction: function(event) {
return !!$(event.target).closest(".mce-container").length || this._super( event );
}
});
答案 1 :(得分:2)
感谢@Harry,TinyMCE bugtracker的优秀人员提供了解决方案。
我刚刚在DOM之后加载了脚本之前添加了下面的代码,就在加载tinyMCE之前:
$(document).on('focusin', function(e) {
if ($(event.target).closest(".mce-window").length) {
e.stopImmediatePropagation();
}
});
像魅力一样,而@Harry发布的那个没有。
答案 2 :(得分:0)
你的问题需要更多细节才能回答,但你可以试试这个:
tinymce.get('editor_id').getBody().setAttribute('contenteditable', 'false');