quill 是乙個很流行的富文字編輯器,github 上 star 大約 21k。但是很少專案中使用時直接使用它,都要對其進行二次封裝,你作為乙個頁面仔是擋不住有想法的產品經理的。
href
=""rel
="stylesheet"
/>
src=
"">
script
>
// npm install quill
import quill from
"quill"
;
例項化 quill,掛載到當前上下文中,然後就能使用它的相關方法及屬性
import quill from
"quill"
;import
"quill/dist/quill.snow.css"
;const options =,,
]// ['link', 'image'],]}
, placeholder:
this
.props.placeholder ||
"請輸入內容..."
, readonly:
false
, theme:
"snow"};
const quill =
newquill
(".my-editer"
, options)
;// 將其實例化到dom樹上.my-editor的節點上
我們在插入內容時,要得知幾個必要條件:
那麼getselection()
方法便是用來獲取游標的,就讓我們知道了現在使用者游標置於何處,那麼就知道了第乙個條件
this
.quill.
getselection()
;
inserttext()
方法是插入文字用的,一般都會在插入後,格式化其他格式,所以下面的方法基本要連用
format()
方法是格式化資料的,能將文字格式化成鏈結、標題、對齊、大小等等
// 格式化成標題
this
.quill.
inserttext
(section_index,
getfieldvalue
("title"))
;this
.quill.
getselection()
;this
.quill.
format
("header"
, *******[activetoolindex]
.value,
getfieldvalue
("title"))
;// 格式化成鏈結
getfieldvalue
("link")&&
this
.quill.
format
("link"
,getfieldvalue
("link"))
;
this
.quill =
newquill
(".mys-editor"
,this
.options)
;this
.quill.on(
"text-change"
,this
.handlechange.
bind
(this))
;
因為 quill 中的標籤是有限的,如果要使用其他標籤的話,需要註冊進去,以 video 標籤為例:
const quill =
require
("quill");
const blockembed = quill.
import
("blots/block/embed");
export
class
videoblot
extends
blockembed
static
value
(node: any);}
}
然後在富文字編輯器的元件中在例項化的 quill 上註冊該標籤
import quill from
"quill"
;import
from
"./quill-video"
;videoblot.blotname =
"******video"
;videoblot.tagname =
"video"
;quill.
register(,
true
);
便可以在相應的位置進行插入 video 標籤了
const p =
this
.getselection()
;// 獲取插入的游標位置
this
.quill.
insertembed
(p,"******video",)
;
export
function
formateditdata
(value: string)
if(value.
match
(videoreg)
)return value;
}export
function
changeimgurl
(value: string)
">`;}
);return result;
}export
function
changevideourl
(value: string)
" controls="controls" width="100%" height="undefined" webkit-playsinline="true" playsinline="true" x5-playsinline="true">`;}
);return result;
}
export
function
changeurl
(value: string)
">`;}
);result = result.
replace
(/]*src=['"]([^'"]+).*?\<\/video>/gi
,function
(match, capture)
" controls="controls" width="100%" height="undefined" webkit-playsinline="true" playsinline="true" x5-playsinline="true">`;}
);return result;
}
vue中封裝富文字編輯器Quill
quill,樣式不用多說,也是主流的黑白清新風,美觀,功能上雖然不是很多,甚至還沒有 網路上傳 可以通過複製網路並黏貼解決 等功能,但它的 高亮是最完美的,同樣支援行內編輯模式,可自定義,總的來說,這是一款優點多但缺點同樣明顯的編輯器,以前用過ueditor,區別大概就是ueditor需要在conf...
quill富文字編輯器 API
1.從第三個開始刪除,刪除4個 4 12345678 1278 2.返回物件 返回從第三個開始,返回4個,編輯器裡面不變 insert 3456 不寫引數引數,預設全部 4 12345678 3456 3.檢索編輯器內容的長度 返回值是要加一 12345678 9 4.同quill.getconte...
富文字編輯器
關於使用富文字編輯器的一些小坑 官網 1.專案 片 editor fail function xhr,editor,result custominsert function insertimg,result,editor this.editor.create this.editor.txt.html...