Javascript Tinymce代码编辑器在JTable网格中是只读的

Javascript Tinymce代码编辑器在JTable网格中是只读的,javascript,jquery,tinymce,Javascript,Jquery,Tinymce,我有JQuery jTable网格,每行包含编辑按钮 FormEditor在模态中打开,tinymce显示正确,工作正常,没有问题,除了当我打开源代码编辑器时,我发现textarea处于只读模式,我需要使其可编辑 我尝试了几个版本的tinymce 源代码编辑器中的textarea为只读的主要原因是什么,以及如何修复 我猜/假设您正在为您的模式使用引导(如果您澄清了创建模式所使用的内容,将有助于其他人) Bootstrap模式的代码在启用时(通过设计)阻止任何其他对象获得焦点。当TinyMCE的代

我有JQuery jTable网格,每行包含编辑按钮

FormEditor在模态中打开,tinymce显示正确,工作正常,没有问题,除了当我打开源代码编辑器时,我发现textarea处于只读模式,我需要使其可编辑

我尝试了几个版本的tinymce

源代码编辑器中的textarea为只读的主要原因是什么,以及如何修复

我猜/假设您正在为您的模式使用引导(如果您澄清了创建模式所使用的内容,将有助于其他人)

Bootstrap模式的代码在启用时(通过设计)阻止任何其他对象获得焦点。当TinyMCE的代码视图出现时,它希望获得焦点,但引导阻止了这种情况的发生。您应该能够使用如下代码覆盖此选项:

$('#myModal').on('shown.bs.modal', function() {
    $(document).off('focusin.modal');
});

(假设Bootstrap 3,并且您不介意使用jQuery,这是这个问题的标记之一)

jTable使用jqueryUI模态对话框,这就是问题的原因

我在这里找到了与我的问题最接近的答案:

编辑:这是jQuery UI>=1.10.2的另一个解决方案:

用安慰剂函数替换可聚焦原型方法修复了它:


这个解决方案可以在这里找到:

你能试着在jsfiddle.net上创建一个演示吗这很难做到,我在几个地方使用了很多代码来让jTable工作。服务器端代码和客户端代码。由于我无法准确地描述您的问题,我建议您调用一个函数,该函数将在每次单击文本区域时将文本区域的只读属性设置为false。我知道这不是一件完美的事,但我想这会有所帮助
$(document).on('focusin', function(e) {
if ($(event.target).closest(".mce-window").length) {
    e.stopImmediatePropagation();
}});
$.ui.dialog.prototype._focusTabbable = $.noop;