我的内联文本编辑器有点麻烦。这是简单的用户有权复制textarea div上的粘贴。没问题。但我不想让他们粘贴html与图像和div元素。
我用过
valid_elements: "p,br,b,i,strong,em",
它删除了p tags
内容的样式。
要做到这一点,但根据我的要求,这不是解决方案。
我也试过paste_postprocess
,但它没有对最新版本的tinymce做任何事情。
我也尝试了许多已在此社区发布的解决方案。但它们都不适合我,因为我使用的是最新版本tinymce 4.0.26
。
我知道我可以通过禁用右键单击来阻止复制粘贴。但这不是一个好主意。
有没有办法从html内容中仅使用p tag
过滤style
?
因此,如果有人使用on copy paste
的最新版本tinymce
工作。
请帮忙。
答案 0 :(得分:3)
使用valid_elements
选项时,您需要明确告诉TinyMCE要保留哪些属性。例如,使用您之前的valid_elements
列表,您可能会执行以下操作:
valid_elements: "p[style],br,b,i,strong,em"
这告诉TinyMCE仅保留列出的标记,并保留为style
标记定义的任何p
属性。或者,您也可以通过执行以下操作来包含特定元素的所有属性:
valid_elements: "p[*],br,b,i,strong,em"
同样,这告诉TinyMCE保留列出的所有标签,但对于p
标签,请保留每个属性。
有关此valid_elements
选择器语法的详细信息,请查看this page。
答案 1 :(得分:-1)
糟糕的情况是:当我用img,div,p
来粘贴编辑器中的内容时 然后在粘贴内容后显示框内的所有元素
(在编辑之后)
我只关注整个过程paste-> savetext。问题是tinymce
在粘贴内容时没有做任何事情,但是当我调用tinymce
函数
tinymce.activeEditor.getContent();
它为我提供了没有img,div
的纯内容。所以我想为什么不去做那个过程on paste
所以我只是简单地在tinymce setup
部分添加了这段代码:
setup : function(ed) {
ed.on('paste',function(e){
setTimeout(function(){
var textContent = tinymce.activeEditor.getContent();
tinymce.activeEditor.selection.setContent(textContent.trim());
},200);
});
}
现在一切正常。
并感谢@Nate Kibler的帮助。