好吧,我不能是唯一一个这个问题似乎永远持续下去的问题。从MS-Word粘贴到任何基于浏览器的HTML编辑器
我们使用基于浏览器的html编辑器(几个不同的编辑器) - 每个人都有自己的“从文字上粘贴”按钮,效果很好。
但是,我们的许多用户只是直接从单词粘贴到设计区域。对我们来说,这会导致世界末日 - 有时它会打破JavaScript或其他不可多得的事情。
因此,我决定编写一个简单的函数来搜索源代码的内容,并且如果它看到任何与微软字粘贴关联的错误字符,则返回“this this match like a ms-word粘贴“。目前,它看起来像这样:
// detect potentially bad characters - usually from msword paste
function hasInvalidChars (in_element) {
var src = $j(in_element).val();
var e = $E(src); // enhanced string
var bad = Array( "mso-list:", "class=\"Mso", "</o:p>", "[if !supportLists]",
"style=\"mso-", "mso-bidi", "“", "”", "<v:shapetype", "<v:path",
"file:///");
for (i=0; i< bad.length; i++) {
if (e.contains(bad[i])) {
return true;
}
}
return false;
}
请注意,如果你尝试运行的代码,它不会工作,因为:(1)使用jQuery和(2)我有一个特殊的对象($ E),增加了一串东西到一个字符串,其中一个是'contains()'函数,但你知道它在做什么。
我在找的是属于'bad []'数组的数组元素。我已经提出了一个初步清单(可能会也可能不是一个好的起点),但我在问你那里的专家 - 请 - 你能告诉我你要放哪些字符或短语吗?在这一点上,如果我能抓住80%的问题,我会欣喜若狂。
谢谢。
CKEditor已经有了这个检查,也许看看他们的来源,因为它是开放的。 – 2011-05-03 17:03:53