Javascript 富文本内容打断了TinyMCE
因此,我正在使用TinyMCE处理一些内容,不幸的是,有时,放入其中的内容(来自数据库的RTE blob数据)会破坏脚本 它在行动中的作用 我使用一个函数来设置Javascript 富文本内容打断了TinyMCE,javascript,html,tinymce,Javascript,Html,Tinymce,因此,我正在使用TinyMCE处理一些内容,不幸的是,有时,放入其中的内容(来自数据库的RTE blob数据)会破坏脚本 它在行动中的作用 我使用一个函数来设置tinymce.init(),它工作正常,但是RTE数据中似乎有什么东西完全破坏了文本区域 以下是脚本: function initMCE(e) { tinymce.init({ mode:"exact", elements:e, plugins:"paste", h
tinymce.init()
,它工作正常,但是RTE数据中似乎有什么东西完全破坏了文本区域
以下是脚本:
function initMCE(e) {
tinymce.init({
mode:"exact",
elements:e,
plugins:"paste",
height:300,
width:750,
toolbar: "bold italic underline, bullist, numlist superscript subscript",
menubar:false,
valid_elements : "em/i,li,ul,ol,u,strong/b,sup,sub,p"
});
}
initMCE("definition");
initMCE("consent");
initMCE("penalty");
HTML很简单,但是:
<textarea name="definition" id="definition"></textarea>
<textarea name="consent" id="consent"></textarea>
<textarea name="penalty" id="penalty"></textarea>
这似乎是一个问题
复制:
解决这个问题的一个快速方法就是确保在注释之前有一个空格
<textarea name="definition" id="definition"> <!-- some comment --></textarea>
<textarea name="consent" id="consent"></textarea>
<textarea name="penalty" id="penalty"></textarea>
补丁代码
错误似乎来自筛选出数据mce伪元素的语句之一
//From Formatter.js source
parents = Tools.grep(parents, function(node) {
return !node.getAttribute('data-mce-bogus');
});
由于注释没有getAttribute
函数,因此会出错。因此,添加对getAttribute
的检查可以修复它
return (node.getAttribute && !node.getAttribute('data-mce-bogus'));
补丁源程序(需要node.js才能生成)
从github获取tinymce源代码,并构建
git克隆git://github.com/tinymce/tinymce.git /蒂尼姆斯
git签出-b修补416E35737AED2AF60EFF69887BB7BF3C3B4BC8
wget-O Formatter.js.patchhttps://www.dropbox.com/s/mt5ar8k8iru8x6o/Formatter.js.patch?dl=1
修补程序-p1
//From Formatter.js source
parents = Tools.grep(parents, function(node) {
return !node.getAttribute('data-mce-bogus');
});
return (node.getAttribute && !node.getAttribute('data-mce-bogus'));