Html富文本編輯器

来源:https://www.cnblogs.com/hsiang/archive/2018/02/21/8456961.html
-Advertisement-
Play Games

本文推薦兩款簡單的富文本編輯器【KindEditor,NicEdit】用於獲得所見即所得的編輯效果,本文僅供學習分享使用,如有不足之處,還請指正。 ...


本文推薦兩款簡單的富文本編輯器【KindEditor,NicEdit】用於獲得所見即所得的編輯效果,本文僅供學習分享使用,如有不足之處,還請指正。

概述

這兩款編輯器都是採用JavaScript編寫,不需要引用dll,可以與主流後端編程語言【Java , .NET,PHP,ASP等】無縫對接,體積小,可以將現有的TextArea變成富文本編輯器。下麵來分別介紹下:

什麼是KindEditor ?

KindEditor 是一套開源的線上HTML編輯器,主要用於讓用戶在網站上獲得所見即所得編輯效果,開發人員可以用 KindEditor 把傳統的多行文本輸入框(textarea)替換為可視化的富文本輸入框。 KindEditor 使用 JavaScript 編寫,可以無縫地與 Java、.NET、PHP、ASP 等程式集成,比較適合在 CMS、商城、論壇、博客、Wiki、電子郵件等互聯網應用上使用。

KindEditor 特點:

  • 快速:體積小,載入速度快
  • 開源:開放源代碼,高水平,高品質
  • 底層:內置自定義 DOM 類庫,精確操作 DOM
  • 擴展:基於插件的設計,所有功能都是插件,可根據需求增減功能
  • 風格:修改編輯器風格非常容易,只需修改一個 CSS 文件
  • 相容:支持大部分主流瀏覽器,比如 IE、Firefox、Safari、Chrome、Opera

示例

KindEditor,如下圖所示,

如何獲取獲取編輯後的內容【KindEditor的可視化操作在新創建的iframe上執行,代碼模式下的textarea框也是新創建的,所以最後提交前需要執行 sync() 將HTML數據設置到原來的textarea。】,可以採用如下代碼:

 1 // 取得HTML內容
 2 html = editor.html();
 3 
 4 // 同步數據後可以直接取得textarea的value
 5 editor.sync();
 6 html = document.getElementById('editor_id').value; // 原生API
 7 html = K('#editor_id').val(); // KindEditor Node API
 8 html = $('#editor_id').val(); // jQuery
 9 
10 // 設置HTML內容
11 editor.html('HTML內容');
View Code

關於本例KindEditor的Html代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>KindEditor</title>
 6         <link rel="stylesheet" href="kindeditor/themes/qq/qq.css" />
 7         <link rel="stylesheet" href="kindeditor/plugins/code/prettify.css"  />
 8         <script charset="UTF-8" src="kindeditor/kindeditor-all-min.js"></script>
 9         <script charset="UTF-8" src="kindeditor/lang/zh-CN.js"></script>
10         <script charset="UTF-8" src="kindeditor/plugins/code/prettify.js"></script>
11         <script type="text/javascript">
12             var editor1;
13             KindEditor.ready(function(K){
14                   editor1=K.create('#t1',{
15                     cssPath:'kindeditor/plugins/code/prettify.css',
16 //                    uploadJson:'../asp.net/upload_json.ashx',
17 //                    fileManagerJson:'../asp.net/file_manager_json.ashx',
18                     allowFileManager:true,
19                     afterCreate:function(){
20                         var self=this;
21 //                        K.ctrl(doument,13,function(){
22 //                            self.sync();
23 //                            K('form[name=example]')[0].submit();
24 //                        });
25 //                        K.ctrl(self.edit.doc,13,function(){
26 //                            self.sync();
27 //                            K('form[name=example]')[0].submit();
28 //                        });
29                     }
30                 });
31                 prettyPrint();
32             });
33             function preSave(){
34                  var html = editor1.html();
35                  editor1.sync();
36                  var s =document.getElementById("t1").value;
37                  document.getElementById("t2").value = s;
38                  alert(s); 
39                  return false;
40             }
41         </script>
42     </head>
43     <body>
44          <form id="example" name="example">
45          <label>詳細內容:</label>
46         <textarea id="t1" name="t1" cols="100" rows="8" style="width:700px;height:200px;visibility:hidden;">
47             
48         </textarea>
49         <input type="hidden" id="t2" value="" />
50         <input type="submit" id="submit" value="提交" onclick="return preSave();" />
51     </form>
52     </body>
53 </html>
View Code

 

什麼是NicEdit?

NicEdit is a Lightweight, Cross Platform, Inline Content Editor to allow easy editing of web site content on the fly in the browser.NicEdit Javascript integrates into any site in seconds to make any element/div editable or convert standard textareas to rich text editing.

示例:

關於如何獲取編輯器後的內容【這裡用textarea的id和值是獲取不了的,因為nicedit會隱藏原有的textarea,並生成自帶的輸入框,這是要獲取框內文本就需要通過其生成的類名去獲取】:可以採用document.getElementsByClassName("nicEdit-main")[0].innerHTML;方式獲取

關於本例中NicEdit的Html代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>NicEdit</title>
 6         <script type="text/javascript" src="NicEdit/nicEdit.js"></script>
 7         <script type="text/javascript">
 8             var editor1;
 9             bkLib.onDomLoaded(function(){
10               editor1 =    new nicEditor({
11                     fullPanel:true,
12                     iconsPath : 'NicEdit/nicEditorIcons.gif'
13                     }).panelInstance("t1");
14             });
15             function preSave(){
16              var s=    document.getElementsByClassName("nicEdit-main")[0].innerHTML;
17              document.getElementById("t2").value=s;
18              alert(s);
19              return false;
20             }
21         </script>
22     </head>
23     <body>
24         <form id="example" name="example">
25          <label>詳細內容:</label>
26         <textarea id="t1" name="t1" style="width:700px;height:300px;"></textarea>
27         <input type="hidden" id="t2" name="t2" />
28         <input type="submit" value="提交" id="submit" name="submit" onclick="return preSave();" />
29         </form>
30     </body>
31 </html>
View Code

備註:

本文旨在拋磚引玉,最好的學習手冊(包括下載地址)就是官網。

KindEditor:http://kindeditor.net/demo.php

NicEdit:http://nicedit.com/index.php

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在實際的生產環境中,經常會用到sshkey密鑰認證實行數據分發數據等操作,還可以批量操作內網伺服器,實行免密認證進行推送分發數據。 1、環境查看 分發伺服器 節點伺服器 2、伺服器添加系統賬號 3、生成密鑰對 Generating public/private dsa key pair.Enter ...
  • SSH
    SSH簡介 SSH的主要特性 SSH的組成 SSH處理過程 SSH協議的實現工具 ssh 客戶端 ssh 伺服器 ssh 服務的最佳實踐 要使用預設埠 禁止使用protocol version 1 限制可登錄用戶 設定空閑會話超時時長 利用防火牆設置ssh 訪問策略 僅監聽特定的IP 地址 基於口 ...
  • RT ...
  • 今天linux主機中毒了,把用帝國備份王備份之後,恢復了快照到剛建主機的狀態; 哎,只怪當初沒有勤快的去做快照啊; 重新配置好後; 開始使用帝國備份王; 數據恢復之後,打開文章,提示“附加表值出錯” 百度搜索了一堆解決問題,但是解決不了我的問題,我在打開phpmyadmin,發現資料庫里的表dede ...
  • 數組有三種寫法 1. var arr=new Array(); 2. var arr=[1,2,3] 3. var arr=new Array(); arr[0]=1; 下麵我解釋如下代碼: 關鍵詞for是用來迴圈的,用法很簡單,不過用點規律 for(等於什麼;到什麼值;怎麼到那個值),上面的代碼便 ...
  • 使用jQuery實現表單校驗:(單獨拿出來介紹表單校驗,是因為內容比較多,知識點較多); 1、註:這裡使用validation插件完成對錶單數據的校驗; validate:一款優秀的表單驗證插件——validation插件 (1)特點: 內置驗證規則:擁有必填、數字、email、url和信用卡號碼等 ...
  • 第一章 一些基本概念 HTML(超文本標記語言),構建網頁的靜態結構,由一系列的DOM組成; CSS(層疊樣式表),給網頁各部分結構添加樣式; JavaScript,通過獲取DOM給靜態結構加上動作,使用戶能夠與靜態網頁進行交互; DOM,一種API(應用程式介面),通過這個介面動態的訪問和修改結構 ...
  • 一、使用jQuery為標簽添加屬性或者樣式 1、$("#id名").css("css屬性名","屬性值");比如:$("tbody tr:even").css("background-color","yellow"); 2、使用addClass("class名"),然後在引入的css文件中寫樣式:. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...