1. wysiwyg editor支持markdown嗎
Bootstrap提供了一個叫wysiwyg的富文本組件,用來顯示和編輯富文本數據,但如何將編輯後的數據保存到MySQL資料庫,卻不得而知。另外,如何將mysql資料庫中的數據顯示到wysiwyg也不得而知,對於這兩個問題,讓我來告訴你解決方案! 一、效果展示 首先,我們先來看看效果如何: 富文本中有一張圖片,還有一個數字列表 我們可以看到編輯後的數據保存成功,以及保存後對應的展示。 二、富文本 度娘對於富文本的解釋如下: 富文本格式(Rich Text Format, 一般簡稱為RTF)是由微軟公司開發的跨平台文檔格式。大多數的文字處理軟體都能讀取和保存RTF文檔。RTF是Rich TextFormat的縮寫,意即多文本格式。這是一種類似DOC格式(word文檔)的文件,有很好的兼容性,使用Windows「附件」中的「寫字板」就能打開並進行編輯。RTF是一種非常流行的文件結構,很多文字編輯器都支持它。一般的格式設置,比如字體和段落設置,頁面設置等等信息都可以存在RTF格式中,它能在一定程度上實現word與wps文件之間的互訪。 如果說富文本不包含圖片,我們可以使用普通的html轉碼方法,見標題四;如果富文本包含圖片,普通的html轉碼已經滿足不了我們了,就需要用到jquery.base64.js,見標題三。 那麼同時,我們看一看mysql欄位的定義: `description` longtext NOT NULL COMMENT '項目詳細描述', 欄位類型為longtext(LongText 最大長度4294967295個字元 (2^32-1),雖然我也不知道到底有多大)。 三、jquery.base64 ①、引入jquery.base64.js <script type="text/javascript" src="${ctx}/components/jquery/jquery.base64.js"></script> 同時設置utf-8編碼,確保中文不亂碼. $.base64.utf8encode = true; ②、富文本表單提交 var editor = "<input type='hidden' name='" + $this.attr("name") + "' value='" + $.base64.btoa($this.html()) + "' />"; 關鍵代碼:將富文本對象的html值轉換為base64,然後封裝到表單form中。 詳細見如下(一整個form提交的表單封裝,參照與dwz框架): /** * 帶文件上傳的ajax表單提交 * * @param {Object} * form * @param {Object} * callback */ function iframeCallback(form, callback) { YUNM.debug("帶文件上傳處理"); var $form = $(form), $iframe = $("#callbackframe"); // 富文本編輯器 $("div.editor", $form).each( function() { var $this = $(this); var editor = "<input type='hidden' name='" + $this.attr("name") + "' value='" + $.base64.btoa($this.html()) + "' />"; $form.append(editor); }); var data = $form.data('bootstrapValidator'); if (data) { if (!data.isValid()) { return false; } } if ($iframe.size() == 0) { $iframe = $("<iframe id='callbackframe' name='callbackframe' src='about:blank' style='display:none'></iframe>") .appendTo("body"); } if (!form.ajax) { $form.append('<input type="hidden" name="ajax" value="1" />'); } form.target = "callbackframe"; _iframeResponse($iframe[0], callback YUNM.ajaxDone); } function _iframeResponse(iframe, callback) { var $iframe = $(iframe), $document = $(document); $document.trigger("ajaxStart"); $iframe.bind("load", function(event) { $iframe.unbind("load"); $document.trigger("ajaxStop"); if (iframe.src == "javascript:'%3Chtml%3E%3C/html%3E';" // For // Safari iframe.src == "javascript:'<html></html>';") { // For FF, IE return; } var doc = iframe.contentDocument iframe.document; // fixing Opera 9.26,10.00 if (doc.readyState && doc.readyState != 'complete') return; // fixing Opera 9.64 if (doc.body && doc.body.innerHTML == "false") return; var response; if (doc.XMLDocument) { // response is a xml document Internet Explorer property response = doc.XMLDocument; } else if (doc.body) { try { response = $iframe.contents().find("body").text(); response = jQuery.parseJSON(response); } catch (e) { // response is html document or plain text response = doc.body.innerHTML; } } else { // response is a xml document response = doc; } callback(response); }); } ③、富文本數據展示 $('#editor').html($.base64.atob(description, true)); 通過base64對資料庫中保存的html代碼進行解碼。 ④、wysiwyg組件 關於wysiwyg組件封裝代碼,我已上傳到CSDN的代碼庫,可詳細參照。 四、普通html轉碼做法 function html_encode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/&/g, ">"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/\'/g, "'"); s = s.replace(/\"/g, """); s = s.replace(/\n/g, "<br>"); return s; } function html_decode(str) { var s = ""; if (str.length == 0) return ""; s = str.replace(/>/g, "&"); s = s.replace(/</g, "<"); s = s.replace(/>/g, ">"); s = s.replace(/ /g, " "); s = s.replace(/'/g, "\'"); s = s.replace(/"/g, "\""); s = s.replace(/<br>/g, "\n"); return s; } 一般情況下,使用上面兩個方法對html數據進行編碼和解碼,但是對於圖片的保存卻無能為力。 以上就是本文的全部內容,希望對大家了解富文本組件wysiwyg有所幫助。
2. django什麼富文本編輯器好用(django富文本編輯器哪個好)
本篇文章給大家談談django什麼富文本編輯器好用,以及django富文本編輯器哪個好對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
富文本即具備豐富樣式格式的文本。可以是包含了HTML語法格式的字元串。為了快速簡單的讓用戶能夠在頁面中編輯帶html格式的文本,引入富文本編輯器。
富文本編輯器:ueditor、ckeditor、kindeditor
在INSTALLED_APPS中添加
在settings/dev.py中添加
在總路由中添加
ckeditor提供了兩種類型的Django模型類欄位
修改應用/models.py裡面的欄位信息,記得要重新數據遷移
效果圖
TinyMCE|一款非常不錯的富文本編輯器TinyMCE的優勢:[1]
如果直接用form表單提交,後台是可以正常獲取到textarea內容的;如果用ajax提交,直接使用jquery$('#mytextarea').val()是獲取不到內容的,需要按如下方法獲取內容:
如果需要上傳圖片,需要在tinymce初始化里添加如下配置:
目前簡單體驗了一下TinyMCE,感覺還是可以,可以直接把網頁、word的內容直接拷貝過來,並能保留源格式,圖片按照上述配置好後,支持直接粘貼過來完成上傳到後台。其他功能等深入使用後再作更新。
幾種富文本編輯器Editor比較
1、UEditor網路的。
優點:插件多,基本滿足各種需求,類似貼吧中的回復界面。
缺點:不再維護,文檔極少,使用並不普遍,圖片只能上傳到本地伺服器,如果需要上傳到其他伺服器需要改動源碼,較為難辦,載入速度慢。
總結:小項目,可以用用,不推薦使用。
2、kindeditor
界面類似網路,效果很像
文檔齊全但用例較少,使用還算方便。
缺點:總感覺樣子不是很好看,沒有現代那種風格,還是老式的傳統圖標。
3、simditor
樣式好看,插件不多,基本滿足需求
文檔英文,使用較為吃力,如果英文水平不好的話
github上面開源,維護較好
因為文檔看起來吃力,所以本人沒有考慮繼續使用。
4、bootstrap-wysiwyg
利用bootstrap實現的,簡潔大方好看。
優點:輕量,好看,使用方便。
缺點:需要一定的瀏覽器支持,畢竟需要bootstrap
5、wangEditor
js和css實現
優點:輕量簡潔,最重要的是開源且中文文檔齊全。設計的UI漂亮。
插件基本能滿足需求,本人推薦使用。
6、CKEditor
功能強大,使用較多,可以看他們官網的例子,馬上就有感覺。
優點:編輯能力極強,基本和word差不多了。看起來界面極其優秀的一款。
缺點:網站訪問速度一般,文檔英文,需要花時間開發。
7、tinymce
支持圖片在線處理,插件多,功能強
編輯能力優秀,界面好看。
同樣文檔為英文,開發需要花時間。
使用之前需要考慮的點:
1需要插件,是否需要很多的插件,還是說簡單的那些功能就行了。
2界面考慮,看你喜歡那個界面了。
3圖片是否需要上傳圖片伺服器。
4文檔如果為英文是否會影響開發。
5支持瀏覽器類型和版本。
python-django中使用ckeditor富文本,後台沒問題,前台為什麼不好使?首先說一下富文本編輯器的原理,富文本編輯器一般都是通過js文件實現的,類似於一個網頁控制項。在django後台之所以可以調用富文本編輯器,那是因為它可以根據這個富文本編輯器定義的欄位,找到對行的js文件,然後在後台模板里調用這個js文件。而你直接通過給模板傳遞對應的函數,模板文件雖然可以識別到對應的函數,但是無法載入對應的js文件,自然無法在網頁中初始化這個富文本編輯器的控制項。
因此,對應的解決辦法是查一下ckeditor這個編輯器的前端調用方式,正常情況下一般是給你需要插入富文本編輯器的編輯框設置一個ckeditor對應的類,然後在模板文件中使用script/script標簽來導入ckeditor需要的js文件以及其他需要導入的靜態文件,就可以了。
不知道我講清楚了沒有,希望可以幫助到你。
哪個編輯器比較好用VSCode:這是一個免費、開源、跨平台的代碼編輯器,由微軟自主設計研發,界面風格和VS相似,但沒有VS那麼龐大臃腫,運行速度快、佔用內存少,支持常見的自動補全、代碼高亮、語法提示、GIT等功能,安裝Python插件後,可以直接編輯運行Python程序。對於Python入門開發者來說,是非常不錯的選擇。
SublimeText:是一個非常不錯的代碼編輯器,基本功能和VSCode差不多,輕便靈活、運行速度快,文本編輯功能強大,常見的自動補全、語法檢查、語法提示功能都能很好支持,配置好本地Python解釋器路勁後,也是一個非常不錯的Python開發軟體。
Atom:也是一個免費、開源、跨平台的代碼編輯器,由GitHub專門為廣大程序員設計研發,基本功能和前2個編輯器差不多,支持常見的智能補全、代碼高亮、語法檢查等功能,安裝Python插件後,也可以直接編輯運行Python程序。
Vim:這是Linux環境下使用最多的文本編輯器,輕便靈活、插件擴展眾多,可以自定義配置環境,和各種編程語言都能混搭,而且效果很好,安裝Python之後,可以直接當作一個非常不錯的Python開發軟體來使用。
VisualStudio:目前使用最多的IDE環境,集成了非常多的開發環境,新的版本也開始支持Python開發,勾選Python之後,可以直接編輯、調試、運行Python程序,功能強大。
PyCharm:一個Python專用的開發軟體,在業界非常流行,也非常受歡迎,支持代碼重構、代碼分析、單元測試等高級功能,因此開發、調試、運行效率很高,本身自帶了許多工程模塊,可以快速構建flask、Django等web應用。
富文本編輯器-1-選型團隊的業務多為後台管理系統,部分業務需要使用富文本編輯器。早期團隊選用了網路編輯器,但存在bug多、無人維護、擴展性差等問題,且後續業需要更靈活的編輯器。為了解決這些問題,決定重選編輯器。
基於以下原因,筆者決定使用Quill來開發團隊的編輯器組件:
1.Delta和API
Quill返回json結構的數據,有API操作編輯器內部元素。也可以通過innerHtml獲取dom。
2.可定製
Quill可以修改、擴展現有的模塊,也可以添加新的模塊,甚至可以在parchment的基礎上全部重寫。有較強的靈活性。
3.兼容性
當前版本兼容Chrome、IE11、Edge,已滿足業務需求。
4.與其他編輯器比較
相比CKEditor、TinyMCE等傳統編輯器,有更好的API和定製功能。而Draft是基於React的編輯器,需要自己實現數據層的內容,使用成本更高。國內的wangEditor功能比較全面,但不具備擴展性。
1.基礎文本模塊
分割線、格式刷、段落、撤回和重做
2.多媒體模塊
圖片上傳模塊
3.其他模塊
工具欄的Tooltip模塊
4.預覽功能
圖片上傳主要取決於業務需求,我們可以改寫圖片的handler方法,打開一個模態框或者打開本地文件夾,調介面上傳圖片。通用點是保存的時候,用Delta保留前面的內容並插入圖片內容,最後更新Quill。
由於圖片上傳、預覽主要取決於業務需求,與編輯器關系不大,後面不再提到。
關於django什麼富文本編輯器好用和django富文本編輯器哪個好的介紹到此就結束了,不知道你從中找到你需要的信息了嗎?如果你還想了解更多這方面的信息,記得收藏關注本站。
3. javascript 程序在不同的瀏覽器上運行時,效果是相同的嗎
速度上抄會有明顯差異,目前 Chrome 最快,Firefox 也很快,IE 相對比較慢。
在具體的表現樣式上,主要取決於瀏覽器對 css 的支持。
如果用 javascript 做 WYSIWYG 編輯器,所產生的HTML代碼,差別比較明顯,原因是各個瀏覽器的內核對DOM對象有不同的解釋,API也不一樣,要做到一致比較困難。
如果是有經驗的開發者,基本上會做到不同瀏覽器都有相同的效果。
補充:
建議採用比較成熟的 javascript 框架,比如 jQuery,他已經為你做了很多工作,使得 javascript 在各個瀏覽器裡面都會有相同的表現。