2013-02-23 112 views
7

當從Word文本複製到wysihtml5 editor,文本被搞砸了(無論是在格式化的術語,並且額外添加的字符計算)。有這個簡單的解決辦法嗎?我正在尋找的正確行爲將是Stack Overflow的富文本編輯器的工作方式 - 從單詞複製和粘貼的文本看起來與單詞文檔相同。wysihtml5:複製從Word文檔中的文本編輯器

謝謝!

更新: 解決與粘貼字的文本格式觀察到的問題,我增加了行"p": {},在使用wysihtml5-0.30_rc2.js文件。該行添加到defaultOptions [parserRules] [tags](see used resource)的聲明中。

不過,現在我可以在粘貼文本的開頭看到「字體定義」段落:

<!-- /* Font Definitions */ @font-face {font-family:Arial; panose-1:2 11 6 4 2 2 2 2 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; mso-hyphenate:none; font-size:11.0pt; font-family:Arial; mso-fareast-font-family:Arial; mso-bidi-font-family:Arial; color:black; mso-fareast-language:HI; mso-bidi-language:HI;} a:link, span.MsoHyperlink {mso-style-unhide:no; mso-style-parent:""; color:navy; mso-ansi-language:#00FF; mso-fareast-language:#00FF; mso-bidi-language:#00FF; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt;} @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 
90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} --> 

這隻有當我使用Firefox發生,並在Chrome不會發生。任何想法如何擺脫這個問題?

+0

我有同樣的問題! – RayOnAir 2013-08-15 16:01:29

+0

我也有同樣的問題,這讓我瘋狂。我真的很喜歡wysihtml5;然而,我的用戶,喜歡用Word編寫的人,在複製和粘貼時永遠會遇到問題。在不斷尋找解決方案方面有什麼好運? – realistschuckle 2014-02-08 03:00:44

回答

1

wysihtml5包含一個解析器,用於分析所有粘貼在其文本區域中的文本,並應用配置對象parserRules中定義的過濾規則。將"style": { "remove": 1 }添加到您的parserRules應該有所斬獲。

要了解Firefox的問題,你必須看到原始剪貼板HTML內容(源自字),其被粘貼到文本區域。只需複製一些Word文本並將其粘貼到文本編輯器中將無濟於事,因爲文本編輯器會請求剪貼板內容的純文本變體。

如果你是一個Mac上你可以看到這個原始剪貼板中的內容與你自己編譯與Xcode中ClipboardViewer tool的幫助。所需的HTML內容應位於public.htmlApple HTML pasteboard type字段中。也許還有其他工具不需要編譯和/或在其他操作系統上工作。

現在你應該看到,從Word中的剪貼板中的內容因此通過移除style標籤(連同所有內容的)實際上看起來像

<span> 
    <!-- 
     /* Font Definitions */ 
     ... 
     div.WordSection1 {page:WordSection1;} 
     ... 
    --> 
    </span> 

字體定義垃圾消失。

看一看wysihtml5’s parserRule demo看到一些更高級的配置選項。

1

我通過重寫wysihtml5.dom.getPastedHtml解決了這個。只需在加載wysihtml5後添加以下內容:

wysihtml5.dom.getPastedHtml = function(event) { 
    var html; 
    if (event.clipboardData) { 
    html = event.clipboardData.getData('text/plain'); 
    } 
    return html; 
};