欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node使用UEditor富文本編輯器的方法實(shí)例

 更新時(shí)間:2017年07月11日 15:09:10   作者:mnixu  
本篇文章主要介紹了node使用UEditor富文本編輯器的方法實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下

大部分編輯器的后臺(tái)是基于java、php、asp等,很少有基于node.js的。今天就做一個(gè)基于node的

最近在做一個(gè)微信素材編輯器的小項(xiàng)目,使用到了UEditor編輯器,使用中出現(xiàn)了許多問(wèn)題。

1.介紹

UEditor是由百度web前端研發(fā)部開(kāi)發(fā)所見(jiàn)即所得富文本web編輯器,具有輕量,可定制,注重用戶(hù)體驗(yàn)等特點(diǎn),開(kāi)源基于MIT協(xié)議,允許自由使用和修改代碼...

2.下載

下載地址 :http://www.dbjr.com.cn/codes/45434.html

選擇開(kāi)發(fā)版 ,因?yàn)槲覀兪褂胣ode ,所以隨便下一個(gè)版本,這里下載1.4.3.3 jsp 版本

下載完成解壓。

3.創(chuàng)建項(xiàng)目

使用express生成器生成一個(gè)項(xiàng)目,并安裝好依賴(lài)模塊

$express ue-test -ejs 
$cd ue-test && npm install 

把剛剛壓縮好的文件重命名為ueditor 放入ue-test/pubilc 中

修改index.ejs頁(yè)面:

<!DOCTYPE html> 
<html> 
 <head> 
  <title><%= title %></title>  
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> 
  <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.config.js"></script> 
  <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.all.min.js"> </script> 
  <!--建議手動(dòng)加在語(yǔ)言,避免在ie下有時(shí)因?yàn)榧虞d語(yǔ)言失敗導(dǎo)致編輯器加載失敗--> 
  <!--這里加載的語(yǔ)言文件會(huì)覆蓋你在配置項(xiàng)目里添加的語(yǔ)言類(lèi)型,比如你在配置項(xiàng)目里配置的是英文,這里加載的中文,那最后就是中文--> 
  <script type="text/javascript" charset="utf-8" src="../ueditor/lang/zh-cn/zh-cn.js"></script> 
 </head> 
 <body> 
   <script id="editor" type="text/plain" style="width:1024px;height:500px;"></script> 
 </body> 
 
 
<script type="text/javascript"> 
 
  //實(shí)例化編輯器 
  //建議使用工廠方法getEditor創(chuàng)建和引用編輯器實(shí)例,如果在某個(gè)閉包下引用該編輯器,直接調(diào)用UE.getEditor('editor')就能拿到相關(guān)的實(shí)例 
  var ue = UE.getEditor('editor'); 
 
</script> 
</html> 

然后啟動(dòng)項(xiàng)目,編輯器初始化成功!(注意引入文件路徑的問(wèn)題,如果初始化失敗可以f12查看報(bào)錯(cuò)進(jìn)行調(diào)試)

我們這里為什么要這樣引入路徑 可以看這里 (API


4.后端配置

僅僅這樣是不能進(jìn)行上傳的

我們需要要配置后端文件。

 修改 ueditor.config.js 文件

//找到這一行代碼 修改成這樣,這里的url為請(qǐng)求的路徑 
// 服務(wù)器統(tǒng)一請(qǐng)求接口路徑 
    ,serverUrl: URL + "ue" 

接下來(lái)我們安裝ueditor 模塊

$npm install ueditor --save 

ueditor模塊有一個(gè)示例,照著修改就好了

修改app.js:

//加載ueditor 模塊 
var ueditor = require("ueditor"); 
 
//使用模塊 
app.use("/ueditor/ue", ueditor(path.join(__dirname, 'public'), function (req, res, next) { 
  // ueditor 客戶(hù)發(fā)起上傳圖片請(qǐng)求 
  if (req.query.action === 'uploadimage') { 
    var foo = req.ueditor; 
 
    var imgname = req.ueditor.filename; 
 
    var img_url = '/images/ueditor/'; 
    res.ue_up(img_url); //你只要輸入要保存的地址 。保存操作交給ueditor來(lái)做 
    res.setHeader('Content-Type', 'text/html');//IE8下載需要設(shè)置返回頭尾text/html 不然json返回文件會(huì)被直接下載打開(kāi) 
  } 
  // 客戶(hù)端發(fā)起圖片列表請(qǐng)求 
  else if (req.query.action === 'listimage') { 
    var dir_url = '/images/ueditor/'; 
    res.ue_list(dir_url); // 客戶(hù)端會(huì)列出 dir_url 目錄下的所有圖片 
  } 
  // 客戶(hù)端發(fā)起其它請(qǐng)求 
  else { 
    // console.log('config.json') 
    res.setHeader('Content-Type', 'application/json'); 
    res.redirect('/ueditor/jsp/config.json'); 
  } 
})); 

修改完成重啟一下服務(wù)就好了,




5.其他配置

自動(dòng)保存

//啟用自動(dòng)保存 
,enableAutoSave: true 
//自動(dòng)保存間隔時(shí)間, 單位ms 
,saveInterval: 500 

發(fā)現(xiàn)這樣啟用自動(dòng)保存沒(méi)有成功,不知道為什么。

另一個(gè)方法是在實(shí)例編輯器之后調(diào)用

//實(shí)例化編輯器 
//建議使用工廠方法getEditor創(chuàng)建和引用編輯器實(shí)例,如果在某個(gè)閉包下引用該編輯器,直接調(diào)用UE.getEditor('editor')就能拿到相關(guān)的實(shí)例 
var ue = UE.getEditor('editor'); 
 
//注意一定要延時(shí)。要等這玩意載入成功。 
setTimeout(function () { 
  ue.execCommand('drafts'); 
}, 500); 

自動(dòng)保存成功??!

取消自動(dòng)保存

啟用自動(dòng)保存的時(shí)候會(huì)發(fā)現(xiàn)一直提示,是不是很煩,反正我是不能忍,怎么辦呢?


設(shè)置一下自動(dòng)保存間隔時(shí)間,把它設(shè)長(zhǎng)一點(diǎn)就好了。

//啟用自動(dòng)保存 
 ,enableAutoSave: true 
 //自動(dòng)保存間隔時(shí)間, 單位ms 
 ,saveInterval: 500 * 60 *60 

這樣煩人的自動(dòng)保存提示就不會(huì)出來(lái)了。

只取消提示

上面我取消自動(dòng)保存之后會(huì)發(fā)現(xiàn)使用起來(lái)不舒服,每次刷新頁(yè)面,上次編輯的就沒(méi)有了。

我們能不能只取消提示,而保留自動(dòng)保存功能呢。

我在網(wǎng)上找了下,并沒(méi)有發(fā)現(xiàn)。

那我們就自己寫(xiě)一個(gè)簡(jiǎn)單的保存吧。

我們可以使用html5的 localStorage 本地存儲(chǔ)功能,當(dāng)我們離開(kāi)當(dāng)前頁(yè)面時(shí)候,把編輯器內(nèi)容存儲(chǔ)到本地,進(jìn)入頁(yè)面時(shí)候提取數(shù)據(jù)。上代碼:

 //實(shí)例化編輯器 
var ue = UE.getEditor('editor'); 
$(function() { 
  //初始化數(shù)據(jù),讀localstroage  
 var allData = {}; 
 if (localStorage.getItem('ueditor_content')!=null && localStorage.getItem('ueditor_content')!="") { 
    allData =  JSON.parse(localStorage.getItem('ueditor_content'));  
  }  
 
 //延時(shí)加載數(shù)據(jù) 要等編輯器加載成功,反正我不延時(shí)的時(shí)候沒(méi)有成功。 
 setTimeout(function () { 
    ue.setContent (allData) 
 }, 500);  
 
 //離開(kāi)頁(yè)面或者刷新頁(yè)面觸發(fā)方法 
  window.onbeforeunload = function() { 
    localStorage.setItem("ueditor_content", JSON.stringify(ue.getContent())); 
  }  
 
}) 

6.添加音樂(lè)

添加音樂(lè)好坑啊,


這是什么鬼,我要的是這樣的效果好么。


要不然你就這樣也好


有會(huì)的老司機(jī)請(qǐng)指導(dǎo)指導(dǎo)!

7.解決圖片過(guò)大超出編輯器

有時(shí)候圖片寬度超出了編輯器的寬度,我們會(huì)想讓他等比縮放

在配置里面找了下,沒(méi)找到這個(gè)配置。不過(guò)編輯器提供了一個(gè)iframe.css讓我們寫(xiě)自己的配置


我們可以在里面設(shè)置:

img { 
 max-width: 100%; /*圖片自適應(yīng)寬度*/ 
}  
  

這樣圖片再怎么拉伸寬度都超不過(guò)邊界。別看很簡(jiǎn)單,但是花了不少時(shí)間研究。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解讀node.js中的path路徑模塊

    解讀node.js中的path路徑模塊

    這篇文章主要介紹了解讀node.js中的path路徑模塊,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Node獲取pnpm安裝的包源碼及代碼路徑操作

    Node獲取pnpm安裝的包源碼及代碼路徑操作

    這篇文章主要為大家介紹了Node如何獲取pnpm安裝的包源碼真實(shí)代碼路徑并操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Node.js Continuation Passing Style( CPS與回調(diào))

    Node.js Continuation Passing Style( CPS與

    這篇文章主要介紹了Node.js Continuation Passing Style,將回調(diào)函數(shù)作為參數(shù)傳遞,這種書(shū)寫(xiě)方式通常被稱(chēng)為Continuation Passing Style(CPS),它的本質(zhì)仍然是一個(gè)高階函數(shù),CPS最初是各大語(yǔ)言中對(duì)排序算法的實(shí)現(xiàn)
    2022-06-06
  • 快速掌握Node.js模塊封裝及使用

    快速掌握Node.js模塊封裝及使用

    這篇文章主要為大家詳細(xì)介紹了Node.js模塊封裝及使用,幫助大家快速掌握Node.js模塊封裝及使用,感興趣的小伙伴們可以參考一下
    2016-03-03
  • nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例

    nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例

    這篇文章主要介紹了nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法,通過(guò)兩個(gè)具體案例形式分析了node.js同步刪除文件/文件夾,以及異步刪除文件/文件夾的相關(guān)實(shí)現(xiàn)技巧,涉及遞歸遍歷與文件判斷、回調(diào)等相關(guān)操作,需要的朋友可以參考下
    2023-04-04
  • Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子)

    Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子)

    這篇文章主要介紹了Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子),需要的朋友可以參考下
    2017-02-02
  • 使用Node.js腳本自動(dòng)統(tǒng)計(jì)代碼量的實(shí)現(xiàn)代碼

    使用Node.js腳本自動(dòng)統(tǒng)計(jì)代碼量的實(shí)現(xiàn)代碼

    手動(dòng)統(tǒng)計(jì)代碼行數(shù)通常會(huì)耗費(fèi)大量時(shí)間和精力,為了提高統(tǒng)計(jì)效率并減少人為錯(cuò)誤,我們可以借助自動(dòng)化工具來(lái)完成這項(xiàng)任務(wù),本文將介紹如何使用 Node.js 腳本來(lái)自動(dòng)化統(tǒng)計(jì)項(xiàng)目代碼行數(shù),讓我們能夠輕松快捷地獲取項(xiàng)目的代碼量信息,需要的朋友可以參考下
    2023-12-12
  • nvm安裝方法以及安裝后node不能使用解決

    nvm安裝方法以及安裝后node不能使用解決

    在我們的日常開(kāi)發(fā)中經(jīng)常會(huì)遇到這種情況,手上有好幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目的需求不同,進(jìn)而不同項(xiàng)目必須依賴(lài)不同版的NodeJS運(yùn)行環(huán)境,nvm應(yīng)運(yùn)而生,這篇文章主要給大家介紹了關(guān)于nvm安裝方法以及安裝后node不能使用解決的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Nodejs異步流程框架async的方法

    Nodejs異步流程框架async的方法

    這篇文章主要介紹了Nodejs異步流程框架async的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Node.js API詳解之 os模塊用法實(shí)例分析

    Node.js API詳解之 os模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 os模塊用法,結(jié)合實(shí)例形式分析了Node.js API中os模塊基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論