TinyMCE:禁用/启用javascript编辑

TinyMCE:禁用/启用javascript编辑,tinymce,Tinymce,如何禁用/启用在javascript中编辑tinymce文本区域 我想我的部件有问题。我在互联网上找到的所有解决方案对我来说都不起作用 控制器代码为: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace #####.Controllers { public class PruebaController :

如何禁用/启用在javascript中编辑tinymce文本区域

我想我的部件有问题。我在互联网上找到的所有解决方案对我来说都不起作用

控制器代码为:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace #####.Controllers
{
    public class PruebaController : Controller
    {
        // GET: Prueba
        public ActionResult Index()
        {
            return View();
        }
    }
}
查看代码为:

    <textarea class="mceEditor" id="Cabecera_contratos_tinymce" name="content">sakjdgfaskdjgfdgjsdjsquoagsd</textarea>

<script>
        tinymce.init({
            mode : "exact",
            elements: "Cabecera_contratos_tinymce",
            theme: "modern",
            entity_encoding: "raw",
            width: "100%",
            plugins: [
                 "link paste code",
                 "preview",
                 "searchreplace wordcount visualblocks visualchars fullscreen insertdatetime nonbreaking",
                 "table contextmenu directionality"
            ],
            extended_valid_elements: "img[*],i[*],div[*]",
            paste_word_valid_elements: "b,strong,i,em,h1,h2,a[href|name|target],p",
            relative_urls: false,
            toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link | preview fullscreen code" //| forecolor backcolor emoticons
        });

        debugger;
        var theEditor = tinymce.get('Cabecera_contratos_tinymce');
        //At this point theEditor=null. So the next instruction throws an exception
        var theContent = theEditor.getContent();
        $('#Cabecera_contratos_tinymce').attr("disabled", true);
</script>
sakjdgfaskdjgfdgjsdqouagsd
tinymce.init({
模式:“精确”,
元素:“Cabecera_contratos_tinymce”,
主题:“现代”,
实体_编码:“原始”,
宽度:“100%”,
插件:[
“链接粘贴代码”,
“预览”,
“searchreplace wordcount visualblocks visualchars全屏插入日期时间非中断”,
“表上下文菜单方向性”
],
扩展的有效元素:“img[*]、i[*]、div[*]”,
粘贴单词有效元素:“b,strong,i,em,h1,h2,a[href | name | target],p”,
相对URL:false,
工具栏:“insertfile undo redo | styleselect |粗体斜体|对齐左对齐中心对齐右对齐对齐对齐| bullist numlist outdent缩进|链接|预览全屏代码”//|前景色背景色表情
});
调试器;
var theEditor=tinymce.get('Cabecera_contratos_tinymce');
//此时,编辑器=null。因此,下一条指令抛出一个异常
var theContent=theEditor.getContent();
$('Cabecera_contatos_tinymce').attr(“disabled”,true);
在视图的布局中,将加载以下脚本:

<script src="/Scripts/kendo/2015.2.902/jquery.min.js"></script><style type="text/css"></style>
    <script src="/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="/Scripts/kendo/2015.2.902/jszip.min.js"></script>
    <script src="/Scripts/kendo/2015.2.902/kendo.all.min.js"></script>
    <script src="/Scripts/kendo/2015.2.902/kendo.aspnetmvc.min.js"></script>
    <script src="/Scripts/kendo.modernizr.custom.js"></script>


    <script src="/Scripts/kendo/kendo.culture.es-ES.min.js"></script>

    <script src="/Scripts/jquery.maskedinput.min.js"></script>

    <link href="/Content/bootstrap.min.css" rel="stylesheet">
    <script src="/Scripts/bootstrap.min.js"></script>
    <script src="/Scripts/jquery.cookie.js"></script>
    <link href="/Content/hover-min.css" rel="stylesheet">

    <script src="/Scripts/sindi.js"></script>
    <script src="//tinymce.cachefly.net/4.1/tinymce.min.js"></script>

    <script type="text/javascript">

        //set current to the "en-GB" culture script
         kendo.culture("es-ES");
    </script>

//将当前设置为“en GB”区域性脚本
剑道文化;
控件正确渲染并按预期工作。然而,如果我无法检索它,我不知道如何禁用它。这张图片显示了我这边的渲染。如您所见,组件显示正确(也正常工作),但我无法检索它:

到目前为止,我试过:

  • 按此处推荐的方式获取activeeditor:
    ActiveEditor为空:

    • 尽管存在editors,但仍按此处建议在编辑器上迭代。lenght=3(奇怪,我只有一个文本区域),editor[0]=null,editor=null,editor[2]=null:

    • 隐藏文本区域,如此处建议的,文本区域始终可见并启用

    • 无论我设置了什么属性,都可以直接访问$(“#Cabecera_contratos_tinymce”)>。它没有效果

有关如何通过JavaScript获取对编辑器的引用的示例,请参见此TinyMCE小提琴:


这将使用上面包含的大部分代码,并且可以在
disableAll()
方法中成功访问编辑器。由于您没有显示所有的代码,很难说问题出在哪里,但fiddle可以工作并将有关编辑器的信息返回到JavaScript控制台。

我终于找到了问题所在

尽管我的代码是在tinymce.init之后声明的,但它是在tinymce.init结束之前执行的

因此,对我这种情况下的任何人来说,解决方案都是:

  • 管理此事件:
  • 在事件中,使用以下命令禁用编辑器:
    tinymce.EditorManager.execCommand('mceRemoveEditor',true,textarea_id)
  • 要启用编辑器,请使用:
    tinymce.EditorManager.execCommand('mceAddEditor',true,textarea\u id)

  • 谢谢你的帮助。稍后我会检查它。我无法在我的代码中实现示例的行为。我已经更新了我的问题,包括所有涉及的代码。也许bootstrap或剑道干扰了tinymce脚本?