1. 程式人生 > >Js FCKeditor的值獲取和修改的程式碼

Js FCKeditor的值獲取和修改的程式碼

FCKeditor編輯器是比較流行的一款編輯器,很多cms系統都在使用,免費而功能強大。容易擴充套件等特性贏得了大家的喜愛。

利用Javascript取和設FCKeditor值也是非常容易的,如下:

// 獲取編輯器中HTML內容
function getEditorHTMLContents(EditorName) {
var oEditor = FCKeditorAPI.GetInstance(EditorName);
return(oEditor.GetXHTML(true));
}

// 獲取編輯器中文字內容
function getEditorTextContents(EditorName) {
var oEditor = FCKeditorAPI.GetInstance(EditorName);
return(oEditor.EditorDocument.body.innerText);
}

// 設定編輯器中內容
function SetEditorContents(EditorName, ContentStr) {
var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
oEditor.SetHTML(ContentStr) ;
}

FCKeditorAPI是FCKeditor載入後註冊的一個全域性物件,利用它我們就可以完成對編輯器的各種操作。

在當前頁獲得 FCK 編輯器例項:
var Editor = FCKeditorAPI.GetInstance('InstanceName');

從 FCK 編輯器的彈出視窗中獲得 FCK 編輯器例項:
var Editor = window.parent.InnerDialogLoaded().FCK;

從框架頁面的子框架中獲得其它子框架的 FCK 編輯器例項:
var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

從頁面彈出視窗中獲得父視窗的 FCK 編輯器例項:
var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');

獲得 FCK 編輯器的內容:
oEditor.GetXHTML(formatted); // formatted 為:true|false,表示是否按HTML格式取出
也可用:
oEditor.GetXHTML();

設定 FCK 編輯器的內容:
oEditor.SetHTML("content", false); // 第二個引數為:true|false,是否以所見即所得方式設定其內容。此方法常用於"設定初始值"或"表單重置"哦作。

插入內容到 FCK 編輯器:
oEditor.InsertHtml("html"); // "html"為HTML文字

檢查 FCK 編輯器內容是否發生變化:
oEditor.IsDirty();

在 FCK 編輯器之外呼叫 FCK 編輯器工具條命令:
命令列表如下:
DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo

使用方法如下:
oEditor.Commands.GetCommand('FitWindow').Execute();

= FCKConfig.BasePath + 'plugins/'
// FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ;


去掉//後,就相當於把placeholder這個外掛功能加上了,fckeditor的外掛檔案都在/editor/plugins/資料夾下分類按資料夾放置的,對於fckeditor2.0來說,裡面有兩個資料夾,也就是有兩個官方外掛,placeholder這個資料夾就是我們剛才加上去的,主要用於多引數或單引數自定義標籤的匹配,這個在製作編輯模板時非常管用,要想看具體例項的話,大家可以去下載acms這個系統檢視學習,另一個資料夾tablecommands就是編輯器裡的表格編輯用到的了。當然,如果你想製作自己其它用途的外掛,那就只要按照fckeidtor外掛的製作規則製作完放置在/editor/plugins/下就行,然後再在fckeidtor.js裡再新增FCKConfig.Plugins.Add('Plugin Name',',lang,lang');就可以了。

第二部分,如何讓編輯器一開啟的時候,編輯工具條不出現,等點“展開工具欄”時才出現?Easy,FCKeditor本身提供了這個功能啦,開啟fckconfig.js,找到

FCKConfig.ToolbarStartExpanded = true ;
改成
FCKConfig.ToolbarStartExpanded = false ;
就可以啦!

第三部分,使用自己的表情圖示,同樣開啟fckcofnig.js到最底部那一段


FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;

上面這段已經是我修改過的了,為了我發表此文的版面不會被撐得太開,我把FCKConfig.SmileyImages那一行改得只有三個表情圖了。

第一行,當然是表情圖示路徑的設定,第二行是相關表情圖示檔名的一個List,第三行是指彈出的表情新增視窗最每行的表情數,下面兩個引數是彈出的模態視窗的寬和高嘍。

第四部分,檔案上傳管理部分

此部分可能是大家最為關心的,上一篇文章簡單的講了如何修改來上傳檔案以及使用fckeidtor2.0才提供的快速上傳功能。再我們繼續再深層次的講解上傳功能

FCKConfig.LinkBrowser = true ;
FCKConfig.ImageBrowser = true ;
FCKConfig.FlashBrowser = true ;在fckconfig.js找到這三句,這三句不是連著的哦,只是我把他們集中到這兒來了,設定為true的意思就是允許使用fckeditor來瀏覽伺服器端的檔案影象以及flash等,這個功能是你插入圖片時彈出的視窗上那個“瀏覽伺服器”按鈕可以體現出來,如果你的編輯器只用來自己用或是隻在後臺管理用,這個功能無疑很好用,因為他讓你很直觀地對伺服器的檔案進行上傳操作。但是如果你的系統要面向前臺使用者或是像blog這樣的系統要用的話,這個安全隱患可就大了哦。於是我們把其一律設定為false;如下

FCKConfig.LinkBrowser = false ;
FCKConfig.ImageBrowser = false ;
FCKConfig.FlashBrowser = false ;

這樣一來,我們就只有快速上傳可用了啊,好!接下來就來修改,同樣以asp為範例進行,進入/editor/filemanager/upload/asp/開啟config.asp,修改
ConfigUserFilesPath = "/UserFiles/"這個設定是上傳檔案的總目錄,我這裡就不動了,你想改自己改了

好,再開啟此目錄下的upload.asp檔案,找到下面這一段


Dim resourceType
If ( Request.QueryString("Type") <> "" ) Then
resourceType = Request.QueryString("Type")
Else
resourceType = "File"
End If
然後再在其後面新增


ConfigUserFilesPath = ConfigUserFilesPath & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"
這樣的話,上傳的檔案就進入“/userfiles/檔案型別(如image或file或flash)/年/月/”這樣的資料夾下了,這個設定對單使用者來用已經足夠了,如果你想給多使用者系統用,那就這樣來改


ConfigUserFilesPath = ConfigUserFilesPath & Session("username") & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/"
這樣上傳的檔案就進入“/userfiles/使用者目錄/檔案型別/年/月/”下了,當然如果你不想這麼安排也可以修改成別的,比如說使用者目錄再深一層等,這裡的Session("username")請根據自己的需要進行修改或換掉。

上傳的目錄設定完了,但是上傳程式還不會自己建立這些資料夾,如果不存在的話,上傳不會成功的,那麼我們就得根據上面的上傳路徑的要求進行遞迴來生成目錄了。

找到這一段


Dim sServerDir
sServerDir = Server.MapPath( ConfigUserFilesPath )
If ( Right( sServerDir, 1 ) <> "\" ) Then
sServerDir = sServerDir & "\"
End If

把它下面的這兩行


Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
用下面這一段程式碼來替換


dim arrPath,strTmpPath,intRow
strTmpPath = ""
arrPath = Split(sServerDir, "\")
Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
for intRow = 0 to Ubound(arrPath)
strTmpPath = strTmpPath & arrPath(intRow) & "\"
if oFSO.folderExists(strTmpPath)=false then
oFSO.CreateFolder(strTmpPath)
end if
next
用這段程式碼就可以生成你想要的檔案夾了,在上傳的時候自動生成。

好了,上傳檔案的修改到現在可以暫時告一段落了,但是,對於中文使用者還存在這麼個問題,就是fckeditor的檔案上傳預設是不改名的,同時還不支援中文檔名,這樣一來是上傳的檔案會變成“.jpg”這樣的無法讀的檔案,再就是會有重名檔案,當然重名這點倒沒什麼,因為fckeditor會自動改名,會在檔名後加(1)這樣來進行標識。但是,我們通常的習慣是讓程式自動生成不重複的檔名

在剛才那一段程式碼的下面緊接著就是
' Get the uploaded file name.
sFileName = oUploader.File( "NewFile" ).Name
看清楚了,這個就是檔名啦,我們來把它改掉,當然得有個生成檔名的函式才行,改成下面這樣

'//取得一個不重複的序號
Public Function GetNewID()
dim ranNum
dim dtNow
randomize
dtNow=Now()
ranNum=int(90000*rnd)+10000
GetNewID=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function

' Get the uploaded file name.
sFileName = GetNewID() &"."& split(oUploader.File( "NewFile" ).Name,".")(1)

這樣一來,上傳的檔案就自動改名生成如20050802122536365.jpg這樣的檔名了,是由年月日時分秒以及三位隨機陣列成的檔名了

相關推薦

Js FCKeditor獲取修改程式碼

FCKeditor編輯器是比較流行的一款編輯器,很多cms系統都在使用,免費而功能強大。容易擴充套件等特性贏得了大家的喜愛。利用Javascript取和設FCKeditor值也是非常容易的,如下: // 獲取編輯器中HTML內容 function getEditorHTMLC

JSJquery獲取修改label的

獲取值: label標籤在JS和Jquery中使用不能像其他標籤一樣用value獲取它的值: var label=document.getElementById("id");var value=label.value;var value=$("#id").val();可以這樣:JS: var label

jQueryjs一些標籤屬性的獲取修改方法以及區別

因為自己總是在jQuery和js寫function的時候,總是把兩者之間混淆,一直想總結以下這2這區別和使用的方式,所以就查了下,再加上了自己平時記錄的,總結下,為了下次自己再次混淆的時候可以直接看自己的部落格查詢,同時也給大家提供便利,以下有轉載的部分,我已經提供了出處,

Jquery獲取修改dom元素的屬性

獲取內容的方式: - text()、html() 以及 val() 三個簡單實用的用於 DOM 操作的 jQuery 方法: text() - 設定或返回所選元素的文字內容 html() - 設

redis入門(3)redis的配置獲取修改

配置 daemonize rip require str 無限 文件的操作 idf master 一、Redis 配置 Redis 的配置文件位於 Redis 安裝目錄下,文件名為 redis.conf。 你可以通過 CONFIG 命令查看或設置配置項。 二、使用配置 1、

js型別引用型別的區別(無舉例)

js中的變數型別有哪些? (1)值型別:字串string、數值number、布林值boolean、undefined (2)引用型別:物件object、陣列array、函式function 值型別和引用型別的區別 (1)值型別: 1⃣️佔用空間固定,儲存在棧中(當一個方法

js 的靜態獲取動態獲取

靜態獲取方法 document.getElementById obj.querySelector obj.querySelectorAll 動態獲取方法(每次使用時候會回去重新獲取一次) obj.getElementsByClassName obj.getElementsByTagNam

獲取修改計算機螢幕解析度 VC

//獲取解析度 m_nWiondwMetricsX   =   ::GetSystemMetrics(SM_CXSCREEN);       m_nWiondwMetricsY  

VS2015控制檯中獲取修改當前字型大小(2-2)

2.2 GetConsoleFontSize()函式 GetConsoleFontSize()函式的作用是獲取指定控制檯輸出視窗字型的尺寸。 2.2.1 函式介紹 GetConsoleFontSize()函式的格式為 COORD WINAPI GetConsoleFontSize

JS設定、獲取取消Cookie

// 設定cookie   function setCookie(name, value, seconds, domain) {       seco

圖片畫素值得獲取修改

在之前的學習中,已經知道了如何獲取每個影象的行畫素陣列,但是在修改影象畫素值時並不方便,特別是多通道影象,很容易弄錯,今天的學習,讓我知道了更加直觀的方式修改影象畫素。 主要涉及下面兩個函式: (1)對於單通道影象(灰度圖):Mat物件.at<uchar>(x,

JS——獲取URL及URL引數

1、js獲取url很簡單,程式碼如下: window.location.href; 其實只是用到了javascript的基礎的window物件。 2、首先看看單純的通過javascript是如何來獲取url中的某個引數: //獲取url中的引數

jq下拉列表的獲取設定操作

1.獲取唄選中的下拉列表的val var status = $("#form option:selected").val(); #form是form表單的ID 2.讓指定的下拉列表的值選中 fi

【JFinal】JFinal的攔截器獲取修改controller返回的json物件

感謝JFinal框架作者老哥詹波的指點 public class JsonInterceptor implements Interceptor { @SuppressWarnings(

input/radio/select等標簽的獲取

變量 ade cat radio div -h height util align input/radio/select等標簽的值獲取和賦值,這幾個是使用率最高的幾個標簽,獲取值和賦值以及初始化自動填充數據和選擇: 頁面html:           <div

js獲取單選按鈕(radio)組的修改選中項

獲取單選按鈕(radio)組的值和修改選中項 看到很多帖子裡說js獲取單選按鈕(radio)組的值可以直接用document.getElementByIdx_x("oper").value,雖然跟單選按鈕組一樣的下拉列表(也是列表項的陣列)也是一個數組,用這種方式可以獲到

jQuery設置獲取以及修改class name操作

ID 分隔 class post add 添加 第一個元素 css屬性 翻譯 在Web程序開發中、很多時候會用需要修改Html標簽的class名稱、來達到修改標簽樣式的效果、那麽在代碼中一般是怎麽操作的呢、本文將為你詳細講解一下class的使用、在jQuery中可以使用at

JS常用的獲取的方法

1. input 標籤<input type="text" name="username" id="name"/> 1) 獲取input值的多種方法: var name = document.getElementById("name"); var name = document.getElemen

java獲取某段程式碼執行時間js獲取方法執行時間

java獲取某段程式碼執行時間和js獲取方法執行時間 java // 測試執行時間 long startTime = System.currentTimeMillis(); 程式碼段...... // 結束時間 long endTime = Syst

jqueryjs分別實現獲取checkbox的+jquery實現複選框全選

//jquery實現全選 $(function(){ $("#checkAll").click(function(){ $(".checkOne").attr("checked",this.checked) }) }) //批量刪除jquery實現提示 function p_d