Kendo ui 粘贴到KendoUI编辑器时,如何从文本中剥离所有html格式?
我想使用KendoUI编辑器基本上只允许用户将文本格式化为段落。可能允许使用粗体和下划线 我在为两件事挣扎:Kendo ui 粘贴到KendoUI编辑器时,如何从文本中剥离所有html格式?,kendo-ui,kendo-asp.net-mvc,Kendo Ui,Kendo Asp.net Mvc,我想使用KendoUI编辑器基本上只允许用户将文本格式化为段落。可能允许使用粗体和下划线 我在为两件事挣扎: 我想在粘贴时从文本中删除所有html格式 我想禁用粗体、下划线等的键盘快捷键-即使工具栏元素不存在,它们似乎也能工作 谢谢 要仅粘贴文本,可以定义一个粘贴处理程序,该处理程序删除除文本以外的所有内容。这很简单: $("#editor").kendoEditor({ paste: function (ev) { ev.html = $(ev.html).text()
谢谢 要仅粘贴文本,可以定义一个粘贴处理程序,该处理程序删除除文本以外的所有内容。这很简单:
$("#editor").kendoEditor({
paste: function (ev) {
ev.html = $(ev.html).text();
}
});
paste
处理程序接收一个事件作为参数,该事件在html
中包含正在解析的文本。我们可以使用jQuery只获取使用$(ev.html).text()的文本
为了删除快捷方式,我可以用最新的剑道UI版本测试它,如果你只定义你想要的工具,那么只有那些快捷方式是活动的。所以如果你说:
$("#editor").kendoEditor({
tools: [
"italic"
],
paste: function (ev) {
ev.html = $(ev.html).text();
}
});
只有italic
快捷方式+i
可用。如果将工具
数组保留为空,则没有任何工具。现在可以使用粘贴清理
选项轻松实现这一点
请参见此处:剑道MVC也有用于此目的的扩展。用法示例:
.PasteCleanup(x => x.KeepNewLines(false))
false
在这种情况下,意味着您希望清除除新行以外的所有内容。对于我来说,这是完整的解决方案
pasteCleanup: {
custom: function (html)
{
html = html.replace(/<\s*br\/*>/gi, '');
html = html.replace(/<\s*a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 (Link - $1) ");
html = html.replace(/<\s*\/*.+?>/ig, '');
html = html.replace(/ {2,}/gi, '');
html = html.replace(/\n+\s*/gi, '');
html = html.replace(" ", '');
html = html.replace(/<.*?>/g, '');
return html;
}
}
粘贴清理:{
自定义:函数(html)
{
html=html.replace(//gi',);
html=html.replace(/(.*)/gi,“$2(链接-$1)”;
html=html.replace(//ig',);
html=html.replace(/{2,}/gi',);
html=html.replace(/\n+\s*/gi,”);
html=html.replace(“,”);
html=html.replace(/.*?/g');
返回html;
}
}
这可能适用于粘贴处理程序,谢谢。(虽然,考虑到时间限制和一些进一步的功能,比如标签白名单,我决定选择TinyMCE作为更快的解决方案)关于快捷方式,不幸的是,事实并非如此-我将工具数组留空,仍然可以+b等。它适用于OSX、Firefox和带有Kendo UI 2013.1.319的Chrome。。。检查这里,我也尝试了剑道UI 2012.3.1319,它也可以工作。你尝试过哪种环境?这个链接有用吗?刚刚在Windows7和Chrome上试用过。我键入了一些文本,选择了它,然后按CTRL-B并将其加粗。:-(在Windows 7和IE8(版本8.0.7601.17514)中尝试过,但在chrome中尝试时失败了(!?)