摘要:簡介是一個輕量級的富文本編輯器,相對于更加精簡,但足以滿足絕大部分場景的需要。
1. TinyMCE簡介
TinyMCE是一個輕量級的富文本編輯器,相對于CKEditor更加精簡,但足以滿足絕大部分場景的需要。2. 安裝和配置TinyMCE
2.1 安裝TinyMCE
npm install --save tinymce
2.2 設置tinymce全局訪問(.angular-cli.json)
"scripts": [ "../node_modules/_tinymce@4.7.4/tinymce.js", "../node_modules/_tinymce@4.7.4/themes/modern/theme.js", "../node_modules/_tinymce@4.7.4/plugins/link/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/paste/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/table/plugin.js" ],
2.3 定義全局變量
在項目中的typing.d.ts中聲明tinymce全局變量,不然會提示找不到tinymce
declare var tinymce: any;
2.4 拷貝皮膚文件到assets目錄下
Linux and MacOS
cp -r node_modules/tinymce/skins src/assets/skins
2.5 安裝中文支持
3. 創建TinyMCE組件中文語言包可以從這個地址下載:https://www.tinymce.com/downl...
下載下來的壓縮文件中會有一個langs目錄,里面有zh_CN.js,把這個目錄拷貝到src/assets目錄下,然后在全局中添加引用(.angular-cli.json):
"scripts": ["../node_modules/_tinymce@4.7.4/tinymce.js", "../node_modules/_tinymce@4.7.4/themes/modern/theme.js", "../node_modules/_tinymce@4.7.4/plugins/link/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/paste/plugin.js", "../node_modules/_tinymce@4.7.4/plugins/table/plugin.js", "../src/assets/langs/zh_CN.js"],
ng g c myeditor
import { Component, AfterViewInit, EventEmitter, OnDestroy, Input, Output } from "@angular/core"; import { HttpClient, HttpHeaders } from "@angular/common/http"; @Component({ selector: "tiny-editor", templateUrl: "./tiny-editor.component.html", styleUrls: ["./tiny-editor.component.css"] }) export class TinyEditorComponent implements AfterViewInit, OnDestroy { @Input() elementId: String; @Output() onEditorContentChange = new EventEmitter(); editor; constructor() { } ngAfterViewInit() { let self = this; tinymce.init({ selector: "#" + this.elementId, height: 600, plugins: ["link", "table", "image"], skin_url: "assets/skins/lightgray", setup: editor => { this.editor = editor; editor.on("keyup change", () => { const content = editor.getContent(); this.onEditorContentChange.emit(content); }); } }); } ngOnDestroy() { tinymce.remove(this.editor); } }
// tiny-editor.component.html4. 使用自定義TinyMCE組件
5. 增加圖片上傳功能
import { Component, AfterViewInit, EventEmitter, OnDestroy, Input, Output } from "@angular/core"; import { HttpClient, HttpHeaders } from "@angular/common/http"; @Component({ selector: "tiny-editor", templateUrl: "./tiny-editor.component.html", styleUrls: ["./tiny-editor.component.css"] }) export class TinyEditorComponent implements AfterViewInit, OnDestroy { @Input() elementId: String; @Output() onEditorContentChange = new EventEmitter(); editor; constructor(private http: HttpClient) { } ngAfterViewInit() { let self = this; tinymce.init({ selector: "#" + this.elementId, height: 600, plugins: ["link", "table", "image"], skin_url: "assets/skins/lightgray", setup: editor => { this.editor = editor; editor.on("keyup change", () => { const content = editor.getContent(); this.onEditorContentChange.emit(content); }); }, // 圖片上傳功能 images_upload_handler: function(blobInfo, success, failure) { var formData; formData = new FormData(); console.log(blobInfo); formData.append("file", blobInfo.blob(), blobInfo.filename()); console.log(formData); self.uploadFile("http://www.seenode.com/index/player/upload", formData).subscribe( response => { let url = response["data"]["imagePath"]; success(url); }); } }); } // 上傳圖片 private uploadFile(url: string, formData: any) { var self = this; var headers = new HttpHeaders(); headers.set("Accept", "application/json"); return self.http.post(url, formData, { headers: headers }); } ngOnDestroy() { tinymce.remove(this.editor); } }6. 獲取和設置編輯器內容
// 監聽onEditorKeyup事件 private keyupHandler(event) { console.log("編輯器的內容:", event); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92499.html
摘要:本文首先完善一下前文上傳頭像的部分,增加上傳文件的大小和格式限制,其次把發布問答部分中,問題的詳細描述部分從普通的修改為富文本編輯器,這樣可以在問題描述中添加各種格式的信息,如代碼表格列表圖片等。 本文是后端開發——Flask初體驗專欄的最后一篇文章,整個Q&A demo的簡單框架其實已經建立起來了,現在就是再優化、完善一些細節。本文首先完善一下前文上傳頭像的部分,增加上傳文件的大小和...
摘要:簡單介紹是一個輕量級的基于瀏覽器的所見即所得編輯器,由寫成。它對和都有著非常良好的支持。功能方強大,并且功能配置靈活簡單。另一特點是加載速度非常快的。所以我們使用作為代碼高亮插件。簡單介紹:TinyMCE是一個輕量級的基于瀏覽器的所見即所得編輯器,由JavaScript寫成。它對IE6+和Firefox1.5+都有著非常良好的支持。功能方強大,并且功能配置靈活簡單。另一特點是加載速度非常快的...
摘要:選擇該頁面綁定的標簽指定圖片上傳處理目錄注其中為了顯示為中文,標明了中文,同時需要下載語言包放到對應的文件夾下。 前言 我們常因為django的自帶admin后臺功能而選擇該框架,但也因為其自動生成的特殊性而在做出特別的更改的時候束手束腳,鑒于項目已經采用了django,而后臺要求能夠直接上傳富文本內容直接用于網頁顯示,定制性高,后來翻了目前較為知名的幾款富文本編輯框,覺得還是tiny...
摘要:選擇該頁面綁定的標簽指定圖片上傳處理目錄注其中為了顯示為中文,標明了中文,同時需要下載語言包放到對應的文件夾下。 前言 我們常因為django的自帶admin后臺功能而選擇該框架,但也因為其自動生成的特殊性而在做出特別的更改的時候束手束腳,鑒于項目已經采用了django,而后臺要求能夠直接上傳富文本內容直接用于網頁顯示,定制性高,后來翻了目前較為知名的幾款富文本編輯框,覺得還是tiny...
摘要:選擇該頁面綁定的標簽指定圖片上傳處理目錄注其中為了顯示為中文,標明了中文,同時需要下載語言包放到對應的文件夾下。 前言 我們常因為django的自帶admin后臺功能而選擇該框架,但也因為其自動生成的特殊性而在做出特別的更改的時候束手束腳,鑒于項目已經采用了django,而后臺要求能夠直接上傳富文本內容直接用于網頁顯示,定制性高,后來翻了目前較為知名的幾款富文本編輯框,覺得還是tiny...
閱讀 1250·2023-04-26 01:38
閱讀 1462·2021-11-15 11:39
閱讀 3251·2021-09-22 15:43
閱讀 2638·2019-08-30 15:55
閱讀 2047·2019-08-30 14:17
閱讀 2851·2019-08-29 14:16
閱讀 3062·2019-08-26 18:36
閱讀 2607·2019-08-26 12:19