2014-09-01 86 views
0

我有一個相當不錯的CKEditor textareas結構,當點擊提交按鈕時,我讓用戶從JavaScript複製/粘貼HTML代碼prompt

但是,我想要RTF而不是HTML。我需要另一個JavaScript插件,還是可以用CKEditor完成?

如何使用CKEditor從HTML獲取RTF?


這裏是我的代碼:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>CKEditor Test</title> 

     <style type="text/css"> 
       .container { 
         margin-left: 30%; 
       } 
     </style> 
    </head> 
    <body> 
    <div class="container"> 
      <form> 
       <textarea class="ckeditor" name="ckeditor1"> 
       </textarea> 
       <input type="submit" value="submit" /> 
      </form> 

      <form> 
       <textarea class="ckeditor" name="ckeditor2"> 
       </textarea> 
       <input type="submit" value="submit" /> 
      </form> 

      <form> 
       <textarea class="ckeditor" name="ckeditor3"> 
       </textarea> 
       <input type="submit" value="submit" /> 
      </form> 
    </div> 
    <script src="ckeditor_4.4.4_basic\ckeditor\ckeditor.js"></script> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script type="text/javascript"> 
     $(".ckeditor").each(function() { 
      CKEDITOR.replace($(this).attr("name")); 
      CKEDITOR.config.width = 500; 
     }); 

     $("form").submit(function(e) { 
      e.preventDefault(); 

      var textarea = $(this).find("textarea:first"); 
      var name = $(textarea).attr("name"); 

      // forcing the textarea to update: 
      CKEDITOR.instances[name].updateElement(); 

      var text = textarea.html(); 
      window.prompt("Copy to clipboard: Ctrl+C, Enter", text); 
     }); 
    </script> 
    </body> 
</html> 


......是什麼樣子: multiple textareas with CKEditor


...在上面的截圖中一些樣本HTML輸出(從文本):

&lt;p&gt;some top-level text&lt;/p&gt;&lt;ul&gt;&lt;li&gt;a sub-item&lt;/li&gt;&lt;li&gt;another sub-item&lt;/li&gt;&lt;/ul&gt; 



注:我使用the basic version of CKEditor,並在 config.js已禁用此行的一些按鈕:

config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript,Link,Unlink,About'; 
+1

CKEditor是一個HTML編輯器,而不是RTF。你不會在網絡上找到很多RTF工具;真的沒有任何意義了... – dandavis 2014-09-01 18:01:28

+0

@dandavis - 好的謝謝,除了我需要將HTML格式化爲RTF格式,以便稍後可以將此輸入生成爲Word文檔。 – 2014-09-01 22:51:54

+1

鮮爲人知的技巧:如果您將html文檔另存爲「something.doc」,則它將以單詞形式打開。你也可以將裸表格html保存爲「ss1.xls」,在excel中打開它就好了。 – dandavis 2014-09-01 22:54:22

回答

0

它可與CKEditor的完成。這個想法是在編輯後將由CKEditor生成的HTML轉換爲RTF。可以在這裏找到靈魂:https://stackoverflow.com/a/155112/4776207

我承認有兩個缺點,但它仍然可以成爲您的理想解決方案。

  1. 解決的辦法是在C#中轉化爲JS是相當瑣碎,即使沒有,如果你想這 result = System.Text.RegularExpressions.Regex.Replace(result, @"<()*br()*>", "\r", System.Text.RegularExpressions.RegexOptions.IgnoreCase); 轉換爲 result = result.replace(/<()*br()*>/gi, "\r"); 所以應該只需一兩分鐘,以獲得C#知識函數轉換爲JS。

  2. 正則表達式,可能不適合處理HTML合適的工具,OK,爲您的使用情況下,需要能夠處理一組非常有限的HTML標記,它是足夠強大的。你甚至可以遠離許多轉換功能。