摘要:但是,現在我只需要一個很基本的內容輸入內容編輯的功能,如粗體斜體列表對齊等。的作用相當神奇,可以讓或整個網頁,以及等等元素設置為可編輯。現在,事情就很簡單了,我們把要執行的命令放到屬性中,然后編寫簡單的都可以很容易地完成編輯器功能了。
背景
我們平時用到的瀏覽器編輯器功能都會比較多,實現的代碼邏輯也會非常復雜,往往是作為一個多帶帶插件被引入進來的。但是,現在我只需要一個很基本的內容輸入內容編輯的功能,如:粗體、斜體、列表、對齊等。那要怎么辦,直接引用個插件太臃腫了。
借助 HTML5 特性,所有的工具都已經可用,所有你需要做的只是配合他們編寫一些非常簡單的 JavaScript 代碼調用就可以了。
開擼你需要兩樣東西,第一是:
contenteditable
contenteditable 是 HTML 中的一個屬性,設置 HTML標簽的 contenteditable=“true” 時,即可開啟該元素的編輯模式。contenteditable 的作用相當神奇,可以讓 div 或整個網頁,以及 span 等等元素設置為可編輯。
我們最常用的輸入文本內容是 input 與 textarea,使用 contenteditable 屬性后,可以在div、table、p、span、body等等很多元素中輸入內容。如果想要整個網頁可編輯,可以在 body 標簽內設置 contenteditable。contenteditable 已在 HTML5 標準中得到有效的支持.
第二樣東西是一個功能特殊的函數:
execCommand
execCommand 讓我們能夠對 contenteditable 區域的內容做一些相當復雜的操作。如果你想了解更為詳細的內容可以看這里:The Mozilla Docs。
從本質上講, execCommand 有三個參數:
Command Name – 命令名稱; ShowDefaultUI – 未實現,所以最好設置為 false; ValueArgument – 命令的參數;
多數情況下,ValueArgument 可以設置為 null,但有一種情況:當你要設置一行文本的標簽的時候(h1,h2,p 等),你需要使用 formatBlock 命令,并把標簽放到 ValueArgument 中。
現在,事情就很簡單了,我們把 exexCommand 要執行的命令放到 data-role 屬性中,然后編寫簡單的 JavaScript 都可以很容易地完成編輯器功能了。核心代碼其實就10行:
$(function() { $("#editControls a").click(function(e) { switch($(this).data("role")) { case "h1": case "h2": case "p": document.execCommand("formatBlock", false, "<" + $(this).data("role") + ">"); break; default: document.execCommand($(this).data("role"), false, null); break; } }) });
完整代碼:
Editable WYSIWYG
代碼下載
原文:http://www.admin10000.com/doc...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/116525.html
摘要:但是,現在我只需要一個很基本的內容輸入內容編輯的功能,如粗體斜體列表對齊等。的作用相當神奇,可以讓或整個網頁,以及等等元素設置為可編輯。現在,事情就很簡單了,我們把要執行的命令放到屬性中,然后編寫簡單的都可以很容易地完成編輯器功能了。 背景 我們平時用到的瀏覽器編輯器功能都會比較多,實現的代碼邏輯也會非常復雜,往往是作為一個單獨插件被引入進來的。但是,現在我只需要一個很基本的內容輸入內...
摘要:它的全稱是數據驅動文檔,并且它被稱為一個互動和動態的數據可視化庫網絡。我們將使用文本編輯器和瀏覽器。出于測試目的,建議使用工具來檢查和調試和,例如或。使矩形反映數據目前,我們陣列中的所有矩形沿軸具有相同的位置,并且不代表高度方面的數據。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由獨木橋先生 發表于云+社區專欄 介紹 D3.js是一個JavaScript庫。它的...
摘要:知乎上也有相關的討論,開發的下一代編輯器莫非已經定義為上一代編輯器了嗎。 這篇是我在知乎的回答,原文在這里:justjavac: VS Code、ATOM這些開源文本編輯器的代碼實現中有哪些奇技淫巧? 研究 V8 比較多,也關注了一下 vscode 和 atom 的性能,每次 vscode、atom 的 change log 我都會看一遍。印象最深的是 vscode 1.14 的一次更...
摘要:在這個編輯器中,和是其中排名靠前的兩個。是一個免費的輕量級編輯器和,用于和開發。對于免費的代碼編輯器來說,是一個很好的選擇。可以安裝兩個命令行實用程序,用于從啟動編輯器,用于管理的軟件包。 對于JavaScript程序員來說,目前有很多很棒的工具可供選擇。本文將會討論10個優秀的支持javascript,HTML5和CSS開發,并且可以使用Markdown進行文檔編寫的文本編輯器。為什...
閱讀 1701·2021-11-18 10:02
閱讀 2218·2021-11-15 11:38
閱讀 2666·2019-08-30 15:52
閱讀 2189·2019-08-29 14:04
閱讀 3230·2019-08-29 12:29
閱讀 2086·2019-08-26 11:44
閱讀 993·2019-08-26 10:28
閱讀 830·2019-08-23 18:37