FCK對IE瀏覽器的操作在這個文件中:fcKeditor/editor/js/fckeditorcode_ie.js??梢杂镁庉嫻ぞ叽蜷_,其中代 碼非常多,第33行就是對word格式的檢測。源代碼中 if(FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){......} 就是自動檢測文字里是否包含word的標(biāo)簽,而我們的修改就是在就在最后一個大括號里添加代碼。變量A就是粘貼板里的內(nèi)容,B.test(A)就是檢測是 否是從Word粘貼過來的,我們用var D=A,然后在對D進(jìn)行過濾, 最后把過濾后的數(shù)據(jù)插回到輸入框,就是 result=this.InsertHtml(D);
具體的過濾代碼FCK中也有非常好的例子,過濾代碼可以在fcKeditor/editor/dialog/fck_paste.html中找到, 在185行方法:function CleanWord( oNode, bIgnoreFont, bRemoveStyles ),第一個參數(shù)為要處理內(nèi)容所在的對象,bIgnoreFont和bRemoveStyles 分別為是否清除Font和Style代碼。
找到了清除的方法,我們可以復(fù)制這個方法到fcKeditor/editor/js/fckeditorcode_ie.js中(firefox等非IE瀏覽器在fckeditorcode_gecko.js中),為了避免出錯,可以把此方法原樣不動的復(fù)制到fckeditorcode_ie.js的最上面,在做下小改動:
原方法第一句為:
var html = oNode.innerHTML ;[喝小酒的網(wǎng)摘]http://blog.const.net.cn/a/4370.htm
為獲取要清除的內(nèi)容
我們修改為:
var html = oNode;
這樣我們就可以直接傳入要清除的內(nèi)容了
又回到B.tset(A)后的大括號,里面全部代碼刪掉,如果有興趣可以看一下,是彈出那個是否要清除格式的代碼。大括號里內(nèi)容可以這樣寫:
var D=CleanWord(A,true,true);result=this.InsertHtml(D);return false;
這樣就完成了。
注意:CleanWord方法中大家仍可以自己設(shè)置是否清除Font和Style。
后面的return false;作用是停止粘貼,如果不中止這個操作,F(xiàn)CK中就會出現(xiàn)一個清除掉格式的內(nèi)容和一個未清除格式的內(nèi)容,呵呵,有興趣可以試試。
[喝小酒的網(wǎng)摘]http://blog.const.net.cn/a/4370.htm聯(lián)系客服