表單(五)富文字編輯

2021-08-04 01:14:36 字數 3041 閱讀 5676

富文字編輯的本質:在頁面中嵌入乙個包含空html頁面的iframe,通過設定designmode屬性為on,該空白html頁面可以被編輯。

【建立富文字編輯區域】

方法一: 在頁面完全載入後將designmode屬性設定為on

eventunit.addhandler(window, "load", function

());

class="editarea"

id="richeditdiv" style="height:100px;width:100px;" contenteditable>div>

contenteditable有三個值:「true」 開啟,「false」關閉,「inherit」繼承父元素
【操作富文字】

1.執行某個命令:

document.execcommand(引數1,引數2,引數3)

引數1:命令名,

引數2:瀏覽器是否為該命令提供使用者介面(一般為false),

引數3:該命令需要的值(若不需要則為null)

3.確定是否已將命令執行到選擇的文字上:

document.querycommandstate(命令名)

4.獲得執行命令時傳入的第三個引數:

document.querycommandvalue(命令名)

執行bold命令時,ie和opera會使用標籤包圍文字,firefox會使用

【富文字選區】

1.使用 iframe 的 getselection()方法,返回乙個selection物件,可以確定實際選擇的文字。

frames["richedit"].getselection();

2.ie支援的是document的selection屬性

frames["richedit"].document.selection;

selection物件利用dom範圍來管理富文字選區。

selection物件的方法:

1. addrange(範圍)             將指定的範圍新增到選區中

2. collapse(指定節點,偏移位置) 將選區摺疊到指定節點中相應的偏移位置

3. collapsetoend() 將選區摺疊到終點

4. collapsetostart() 將選區摺疊到起點

5. containsnode(指定的節點) 確定指定節點是否包含在選區中

6. deletefromdocument() 從文件中刪除選區中的文字,效果等同document.execcommand("delete",false,null)

7. extend(指定節點,偏移位置)

8. getrangeat(索引) 返回對應索引選區中的dom範圍

9. removeallranges() 從選區中移除所有dom範圍,相當於整個選區都移除掉了

10. removerange(範圍) 從選區中移除指定的範圍

11. selectallchildren(指定節點) 清除選區,並選擇指定節點的所有子節點

12. tostring() 返回選區包含的文字內容

例子:為選區新增黃色背景

var selection = frames["richedit"].getselection();

var selectedtext = selection.tostring(); //取得選區文字

varrange = selection.getrangeat(?); //取得選區範圍

var span = frames["richedit"].document.createelement("span");

span.style.backgroundcolor = "yellow";

range.surroundcontents(span); //給選取新增黃色背景

由於ie8及更早版本不支援dom範圍,只支援文字範圍,上面的例子用ie的文字範圍來實現:

var selection = frames["richedit"].document.selection;

varrange = selection.createrange(); //建立文字範圍

range.pastehtml(""+range.htmltext+"");

【提交富文字】

方法一:從iframe中提取html,將其插入到隱藏的表單字段中。

var hidddernform = document.getelementbyid("hiddenformid"); //隱藏表單

eventunit.addhandler(hidddernform,"submit",function(event));

方法二:對於contenteditable的元素

var hidddernform = document.getelementbyid("hiddenform");

eventunit.addhandler(hidddernform,"submit",function(event));

富文字編輯

關於字型方面,見 font。下面就是找到的一些免費開源的富文字外掛程式比較。以下僅供參考。文件上說,quill 是乙個為相容性和可擴充套件性而構建的所見即所得的現代編輯器。截至 2019.12.12,仍然處於有人維護狀態,結合上面的考慮點,有下面的一些個人體會。好的方面 不好的方面 文件上說,sum...

ios富文字編輯

最近的專案要用到富文字編輯來實現其中的修改文件功能。先是在github是找了一些editor,效果都不是很滿意,多是使用coretext來實現的,但attribute text與html的轉換十分繁鎖,所找到的控制項只有外讀時轉化為html的方法,而沒有載入時轉換到attribute text的方法...

tinymce vue 富文字編輯

用texterea最多支援換行,如果文字資訊想要更加豐富一些,比如增加格式樣式,比如增加,textarea就愛莫能助了 在網上搜尋了一番,發現tinymce是比較方便好用的一款富文字編輯 官網1.富文字rich text editor在增刪查改四個操作下,只有增和改是需要出現具體的工具欄的,在檢視的...