TinyMCE的上傳外掛程式思路

2022-08-27 18:39:10 字數 1298 閱讀 7694

我看部落格後台使用的是tinymce作為rich text editor,這麼做主要是為了相容wordpress——把wp的資料遷移過來可費了牛鼻子勁了——多處**都是在相容wp的html過濾和輸出,因此為了保持一貫性,現在也就繼續使用tinymce(我用的版本是3.x,一下**不適用於2.x)來寫東西。

tinymce的擴充套件性還是很不錯的,wordpress就把它改了個亂七八糟。我沒那個本事也沒那個功夫,但是上傳還是得做的。放狗搜了一把,大都是在講怎麼整合別人做好的上傳外掛程式,於是我自己啃了半天wiki,這裡把大概的流程記一下:

1. 首先工具欄上得有按鈕,名字是叫image。還有乙個advimage,看名字就知道功能更牛鼻,不過當然用起來也就更複雜了; 新增了按鈕之後點選它彈出的視窗(以下稱視窗甲)並沒有什麼地方可以瀏覽要上傳的檔案,因為這個按鈕本身的意思只是插入乙個

標籤,所以必須再彈乙個視窗來上傳,然後把生成的uri填進來。在tinymce的初始化函式init裡面新增乙個叫file_browser_callback的鍵值對,指向我們的瀏覽**函式(先寫乙個空殼);

tinymce.init();

function wfb(field_name, url, type, win){}

2. 這樣子視窗甲上就會出現乙個browse按鈕了,那我們需要點選它之後彈出來上傳的頁面,就是調乙個函式,最關鍵的其實就是file那個鍵

//field_name: 視窗甲等待填入uri的文字框的id

//url: 對於上傳來說就別管了

//type: 這個也不說了,對我們沒用

//win: 這就是視窗甲的控制代碼,後面用來通訊

function wfb(field_name, url, type, win),);

return false;

}

3. 這麼一寫,點選browse之後就會彈出我們的頁面(以下稱視窗乙)了,這也就是後台要做的事了。這裡還有乙個問題,上傳完之後如何把生成的uri填回視窗甲?這裡要用到popup這個東西,我也沒空研究這是什麼了,總之它能在tinymce彈出的視窗之間傳遞引數,我們需要讓視窗乙告訴視窗甲uri。我的做法是後台使用同乙個類(/admin/uploadimg)來處理,收到get請求的時候就返回乙個簡單的上傳頁面,收到post請求的時候就儲存,然後輸出類似這樣的**: 

var filebrowserdialogue = 

};tinymcepopup.oninit.add(filebrowserdialogue.init, filebrowserdialogue);

4. 於是uri就能填回去了。 其實蠻簡單的,就是幾個概念有點繞。

tinymce原裝外掛程式原始碼分析(一) hr

tinymce是一款能方便無限擴充套件的網頁富文字編輯器。鑑於,網上關於tinymce的文章都是基於簡單使用,而關於外掛程式編寫等,一概搜不到。本系列文章就tinymce乙個較老的版本 4.2.8 2015 xx xx 進行分析。js原始碼見 外掛程式位於plugins目錄下。關於plugin.js...

寫jquery外掛程式的思路

不要覺得寫外掛程式很難,只是你把問題想的太複雜了,本文教你在10分鐘內搞定乙個簡單的外掛程式。其實就是把一些常用 實用 通用的功能封裝起來而以,簡單的來講就是把這些 放在乙個方法裡面,可以達到重複使用的效果,這樣就可以不需要每次要用此功能的時候都去重新寫一遍。1.先定義乙個外掛程式 function...

檔案上傳(外掛程式版)

問題描述 專案裡需要上傳1g以上的iso檔案,而且要做成全域性元件,切換各個頁面的時候,上傳介面還在並且上傳不會受到影響,實現分片上傳 秒傳以及斷點續傳的功能,所以使用了vue uploader外掛程式 解決方法 元件a封裝上傳檔案 選擇檔案 元件b接收 uploadiso 元件a width 10...