好吧,我不能是唯一一個這個問題似乎永遠持續下去的問題。從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