Ueditor 自定義按鈕


第一步:找到ueditor文件夾下的ueditor.config.js下toolbars參數,新增一個字符串showmsg,同時新增一個labelMap用於鼠標移入顯示自定義提示信息、

   //工具欄上的所有的功能按鈕和下拉框,可以在new編輯器的實例時選擇自己需要的從新定義
        , toolbars: [[
            ......,print', 'preview', 'searchreplace', 'help'
            //, 'drafts' 從草稿箱加載
            //新增自定義按鈕
            ,'showmsg'
        ]]
        
        //自定義按鈕鼠標移入提示
        ,labelMap:{
        	'showmsg':'顯示提示信息'
        }
第二步:找到ueditor文件夾下的ueditor.all.js的btnCmds數組,添加字符串'showmsg'

這個時候刷新頁面就可以在help按鈕后面新增了一個按鈕,但是按鈕的圖標顯示的是B(默認的樣式)

第三步:在顯示出來按鈕后,我們發現按鈕的圖標不是我們想要的,然后我們找到ueditor文件夾下的themes文件夾下的default文件夾下的css文件夾下的ueditor.css,在文件的末尾加上如下css:

.edui-for-showmsg .edui-icon{
	background-position:-200px -40px;
}
這時候再刷新頁面就發現圖標已經換掉了,這里要解釋下就是圖標都是使用themes/default/images/icons.png這個圖片文件通過偏移量來選擇圖標的,如果有自定義圖標,只需要將制作好的圖標加入到icons.png中,然后設置偏移量就可以了。

第四步:當我們點擊按鈕時發現沒有反應,其實在第二步完成后ueditor已經為我們將這個按鈕的點擊事件綁定好了,只不過是這個點擊方法是空的而已,現在就需要我們自己去重寫這個點擊方法了。首先在ueditor文件夾下定義一個myplugins的文件夾,然后新建一個showmsg.js文件,showmsg文件內容如下:

UE.commands['showmsg'] = {
    execCommand : function(){
        var imgs = this.document.getElementsByTagName("img");
        for(var i= 0,img;img = imgs[i++];){
            img.setAttribute("border",2);
            img.setAttribute("width","100");
            img.setAttribute("height","100");
        }
    },
	queryCommandState:function(){
	     var images = this.document.getElementsByTagName("img" );
	     for(var i=0;i<$(images).length;i++){
	     	if($(images[i]).css("width")!="100px"){
	     		return 0;	 //如果找到寬度不為100的圖片,則返回0,代表當前按鈕可以點擊
	     	}
	     }
	     return -1;           //否則返回-1,告訴編輯器將當前按鈕置灰
	}
};
execComman 按鈕點擊時候要處理的信息,我寫的是將所有的圖片的border設為2,寬度和高都設置為100

queryCommandState 方法是指當編輯器獲取焦點時要處理的事,這里就是遍歷所有已上傳的圖片文件,如果編輯器中存在寬度不為100px的圖片,則讓當前按鈕可點擊,否則return -1;表示將按鈕置灰不可點擊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM