客户端Javascript代码,用于从CKEditor中删除伪造的HTML
我相信这可能与 但就我而言,我使用的是CKEditor;但是,在将数据发送到服务器之前(或在接收回数据之后),我希望去掉“垃圾”HTML标记和注释,例如从最新(2007或更高版本)的Microsoft Office粘贴时出现的标记和注释。因为这里的服务器端是一个第三方应用程序,如果可以的话,我更愿意做这个客户端。是的,我知道这样做的安全风险;这只是为了清理常见用例中的数据客户端Javascript代码,用于从CKEditor中删除伪造的HTML,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我相信这可能与 但就我而言,我使用的是CKEditor;但是,在将数据发送到服务器之前(或在接收回数据之后),我希望去掉“垃圾”HTML标记和注释,例如从最新(2007或更高版本)的Microsoft Office粘贴时出现的标记和注释。因为这里的服务器端是一个第三方应用程序,如果可以的话,我更愿意做这个客户端。是的,我知道这样做的安全风险;这只是为了清理常见用例中的数据 是否有任何通用技术或现有库(特别是jQuery友好库)可以做到这一点?注意,我不想对所有HTML进行编码或剥离,只想对与Of
是否有任何通用技术或现有库(特别是jQuery友好库)可以做到这一点?注意,我不想对所有HTML进行编码或剥离,只想对与Office相关的crud进行编码或剥离。您是否尝试过CKEditor内置的Word清理功能? 它似乎是在使用“从Word粘贴”对话框时自动运行的,但也可以从代码中使用。 我不是CKEditor API方面的专家,因此可能有一种更有效或正确的方法来实现这一点,但在当前版本(3.3.1)中,这似乎是可行的: 如果您对此清理不满意,可以根据清理需要修改default.js。 有一些配置选项可用于清理、检查(搜索“pasteFromWord”选项)
如果您需要更高级的东西,但需要服务器访问,我建议您检查WordOff()。您可以围绕他们的服务构建一个代理和jsonp包装器,这样您就可以在不安装服务器的情况下从客户端使用它。它必须是Javascript吗?是否可以选择使用服务器端脚本?如果是,是什么平台?这实际上是使用Jabber客户端,因此它必须作为Jabber服务器的插件来完成,在这种情况下,它将是Java。但出于逻辑上的原因,我强烈希望使用客户端Javascript解决方案。
function cleanUp() {
if (!CKEDITOR.cleanWord) {
// since the filter is lazily loaded by the pastefromword plugin we need to add it ourselves.
// We use the same function as the callback for when the cleanup filter is loaded. Change the script path to the correct one
CKEDITOR.scriptLoader.load("../plugins/pastefromword/filter/default.js", cleanUp, null, false, true );
alert('loading script for the first usage');
} else { // The cleanWord is available for use
// change to the correct editor instance
var editor = CKEDITOR.instances.editor1;
// perform the clean up
var cleanedUpData = CKEDITOR.cleanWord(editor .getData(), editor );
// do something with the clean up
alert(cleanedUpData);
}
}
cleanUp();