首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >完全Reload TinyMCE

完全Reload TinyMCE
EN

Stack Overflow用户
提问于 2011-09-14 17:52:26
回答 1查看 2K关注 0票数 2

我已经写了一段时间的CMS,目前正在做的最后几个接触到它。其中之一包括使用ajax在lightbox样式的窗口中提供tinyMCE编辑器。

当加载它时,它第一次完美地工作,但是当我第二次或更多次这样做时,元素名称会变得混乱,它不会发送数据,也不会在TinyMCE窗口中显示当前值。当我使用Chrome检查元素时,我可以看到包含前一个tinyMCE窗口的span仍然存在。

我使用document.body.removeChild来删除保存它的div。有人有什么想法吗?

加法:

当AJAX完成请求后(它拥有窗口中所有html代码),它将创建一个新的div元素,并使用document.body.appendChild将元素添加到文档中,并将html代码放入div标记中。

然后,它遍历新代码并搜索该区域的脚本(其中一个是MCE启动器),并将它们附加到头部,以便执行它们。

如果用户单击“取消”而不是“保存”,它将使用: document.body.removeChild(document.getElementById("popupbox"));删除div标记,它运行良好,

但是,当我像前面提到的那样弹出并重新填充元素,并检查那里的元素时,仍然有一个由TinyMCE创建的跨度,并且命名已经更改(由于某种原因,它现在不是由' content‘标识,而是现在是8个),并且编辑器区域中没有内容。

我使用过: tinyMCE.execCommand('mceRemoveControl',true,‘mce{$used’‘name’}‘);tinyMCE.editors.destroy();

但两者都不起作用。它们将tinymce窗口返回到文本区域,但元素仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-15 07:56:43

在移动或删除包含tinymce iframe的html元素之前,删除您描述的编辑器(使用正确的tinymce编辑器id)是一个不错的选择。在哪里加载您的tinymce.js?如果您使用ajax交付它,我认为最好在父页面(!)上加载它。更多的代码会有帮助。

编辑:-我记得有一种情况,我不得不删除一个剩余的跨度。以下是我的代码:

代码语言:javascript
复制
        // remove leftover span
        $('div .mceEditor').each(function(item){

            if (typeof $(this).attr('style') !== "undefined" ){
                $(this).removeAttr('style'); // entfernt "style: none";
            }
            else {
                $(this).remove();
            }
        }); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7420739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档