当前位置: 首页 > 面试题库 >

如何删除tinyMCE,然后重新添加它?

颛孙和悌
2023-03-14
问题内容

我正在尝试将tinyMCE编辑器添加到我的页面,将其删除,然后再次添加,但出现错误。

当我运行A部分,然后运行B部分,而不是运行A部分时,出现错误:

Error: g.win.document is null
Source File: tiny_mce/tiny_mce.js Line: 1

甲部

        js += "            tinyMCE.init({ ";
        js += "                'mode' : 'exact', \n";
        js += "                'elements' : '" + ctrl.ID + "Editor', \n";
        js += "                'plugins' : 'insertdatetime,TVCMSLink,TVCMSImage',\n";
        js += "                'theme' : 'advanced',\n";
        js += "                'theme_advanced_layout_manager' : 'SimpleLayout',\n";
        js += "                'theme_advanced_buttons1' : 'backcolor, forecolor, |, bold, underline, strikethrough, |, numlist, bullist, charmap, |, undo, redo, |, anchor, link, tvlink, unlink',\n";
        js += "                'theme_advanced_buttons2' : '',\n";
        js += "                'theme_advanced_buttons3' : ''\n";
        js += "            });\n";

B部分

        js += "                        tinyMCE.getInstanceById('" + ctrl.ID + "Editor').remove();\n";

编辑:

上面是创建JavaScript的后端分支,下面是完整的JavaScript函数。第一次通过它打开对话框并工作,其内容在编辑器中,没有错误。当我单击关闭按钮时,对话框关闭。当我再次运行该函数时,将显示对话框,但编辑器为空,并且出现上述错误。

function show_HP1B0() {
$('.EditLink').hide();
$.ajax({
    type: 'post',
    url: 'genericHandler.ashx',
    data: 'cmd=select&tableName=ExtraBlocks&id=4',
    dataType: 'json',
    success: function(data) {
        $('#HP1B0Editor').html(data['rows'][0]['Content']);
        alert($('#HP1B0Editor').html());
        tinyMCE.init({                 'mode' : 'exact', 
            'elements' : 'HP1B0Editor', 
            'plugins' : 'insertdatetime,Link,Image',
            'theme' : 'advanced',
            'theme_advanced_layout_manager' : 'SimpleLayout',
            'theme_advanced_buttons1' : 'backcolor, forecolor, |, bold, underline, strikethrough, |, numlist, bullist, charmap, |, undo, redo, |, anchor, link, tvlink, unlink',
            'theme_advanced_buttons2' : '',
            'theme_advanced_buttons3' : ''
        });
        var dlg = $('#ctl00_EXTRA_HTML_0_HP1B0Editor').dialog({
            modal: false,
            draggable: false,
            position: 'center',
            zIndex: 99999,  // Above the overlay
            width: 370,
            title: 'Content Block Editor',
            closeText: '',
            open: function () {
                $('body').css('overflow', 'hidden');
                if ($.browser.msie) { $('html').css('overflow', 'hidden'); } $('<div>').attr('id', 'loader').appendTo('body').show();
            },
            close: function () { $('body').css('overflow', 'auto'); if ($.browser.msie) { $('html').css('overflow', 'auto'); } $('#loader').remove(); },
            buttons: {
                'Save': function () {
                    tinyMCE.getInstanceById('HP1B0Editor').remove();
                    $('.EditLink').show();
                    $(this).dialog('close');
                },
                'Cancel': function () {
        alert('HP1B0Editor');
                    tinyMCE.getInstanceById('HP1B0Editor').remove();
                    $('.EditLink').show();
                    $(this).dialog('close');
                }
            }
        }).parent();
        dlg.appendTo(jQuery('form:first'));
    },
    error: function(data) {
        $('.EditLink').show();
        $('#HP1B0Editor').html('Error');
    }
});
}

问题答案:

要彻底删除编辑器实例并避免任何错误,请使用:

tinymce.EditorManager.execCommand('mceRemoveControl',true, editor_id);

要重新初始化实例,请使用:

tinymce.EditorManager.execCommand('mceAddControl',true, editor_id);

要知道,在DOM移动TinyMCE的编辑器,当你需要removeControladdControl过,否则会导致JS错误。

TinyMCE 4开始 ,删除和重新初始化实例的方法现在…

要彻底删除编辑器实例并避免任何错误,请使用:

tinymce.EditorManager.execCommand('mceRemoveEditor',true, editor_id);

要重新初始化实例,请使用:

tinymce.EditorManager.execCommand('mceAddEditor',true, editor_id);


 类似资料:
  • 问题内容: 我正在尝试转学;为此,我想删除神经网络的最后两层并添加另外两层。这是一个示例代码,它也会输出相同的错误。 我使用删除了该图层,但是当我尝试添加其输出时出现此错误 AttributeError:“模型”对象没有属性“添加” 我知道该错误的最可能原因是不当使用。我应该使用其他什么语法? 编辑: 我试图在keras中删除/添加图层,但不允许在加载外部重物后添加它。 它显示此错误 问题答案:

  • 我尝试在从KieBase中删除规则后重新创建KieSession,但删除的规则仍在触发。 我使用以下代码创建了一个KieBase并删除了一条规则: 但是当我根据ksesion1评估一个事实时,rule1仍然在触发。如何将编辑后的KieBase重新加载到新会话中?

  • 问题内容: 我在数组上遇到了麻烦。我有一个要修改的数组,如下所示。我想通过索引删除它的元素(元素),然后重新索引数组。可能吗? 问题答案:

  • 问题内容: 我刚刚开始使用Sequelize和Sequelize CLI 由于这是开发时间,因此经常添加和删除列。在现有模型中添加新列的最佳方法是什么? 例如,我想将新列“ completed ”转换为 Todo 模型。我将此列添加到models / todo.js。下一步是什么? 我试过了 无法正常工作: “ 未 执行任何迁移,数据库架构已经是最新的。” 问题答案: 如果使用sequelize-

  • 我正在写申请表。它需要列出除了PI和表单提交者之外的研究团队成员。然而,一些研究将没有额外的团队成员,所以我希望该行保持隐藏,直到有人点击添加团队成员按钮。 什么在起作用: 1。我在最初加载页面时隐藏了元素。2.单击添加行可以添加正确的行。3.单击删除将删除一行。 目前存在的问题:1.如果有人添加团队成员,然后删除所有团队成员,单击添加团队成员将不会添加行。2.当元素在初始页面加载中隐藏时,第一次

  • 问题内容: 我有活动: 在此容器内,取决于所按下的按钮是FragmentA还是FragmentB。这些片段是嵌套子片段的 容器 。即,每个片段中都包含自己的导航堆栈。 在活动的onCreate中,我将实例化这两个片段: 然后,我继续互相替换: 到目前为止,一切都很好。但 问题: 每次我用fragmentB替换fragmentA时(反之亦然) -getChildFragmentManager() 破