You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							187 lines
						
					
					
						
							6.1 KiB
						
					
					
				
			
		
		
	
	
							187 lines
						
					
					
						
							6.1 KiB
						
					
					
				| window.onload = function () {
 | |
|     editor.setOpt({
 | |
|         emotionLocalization:false
 | |
|     });
 | |
| 
 | |
|     emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/";
 | |
|     emotion.SmileyBox = createTabList( emotion.tabNum );
 | |
|     emotion.tabExist = createArr( emotion.tabNum );
 | |
| 
 | |
|     initImgName();
 | |
|     initEvtHandler( "tabHeads" );
 | |
| };
 | |
| 
 | |
| function initImgName() {
 | |
|     for ( var pro in emotion.SmilmgName ) {
 | |
|         var tempName = emotion.SmilmgName[pro],
 | |
|                 tempBox = emotion.SmileyBox[pro],
 | |
|                 tempStr = "";
 | |
| 
 | |
|         if ( tempBox.length ) return;
 | |
|         for ( var i = 1; i <= tempName[1]; i++ ) {
 | |
|             tempStr = tempName[0];
 | |
|             if ( i < 10 ) tempStr = tempStr + '0';
 | |
|             tempStr = tempStr + i + '.gif';
 | |
|             tempBox.push( tempStr );
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function initEvtHandler( conId ) {
 | |
|     var tabHeads = $G( conId );
 | |
|     for ( var i = 0, j = 0; i < tabHeads.childNodes.length; i++ ) {
 | |
|         var tabObj = tabHeads.childNodes[i];
 | |
|         if ( tabObj.nodeType == 1 ) {
 | |
|             domUtils.on( tabObj, "click", (function ( index ) {
 | |
|                 return function () {
 | |
|                     switchTab( index );
 | |
|                 };
 | |
|             })( j ) );
 | |
|             j++;
 | |
|         }
 | |
|     }
 | |
|     switchTab( 0 );
 | |
|     $G( "tabIconReview" ).style.display = 'none';
 | |
| }
 | |
| 
 | |
| function InsertSmiley( url, evt ) {
 | |
|     var obj = {
 | |
|         src:editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url
 | |
|     };
 | |
|     obj._src = obj.src;
 | |
|     editor.execCommand( 'insertimage', obj );
 | |
|     if ( !evt.ctrlKey ) {
 | |
|         dialog.popup.hide();
 | |
|     }
 | |
| }
 | |
| 
 | |
| function switchTab( index ) {
 | |
| 
 | |
|     autoHeight( index );
 | |
|     if ( emotion.tabExist[index] == 0 ) {
 | |
|         emotion.tabExist[index] = 1;
 | |
|         createTab( 'tab' + index );
 | |
|     }
 | |
|     //获取呈现元素句柄数组
 | |
|     var tabHeads = $G( "tabHeads" ).getElementsByTagName( "span" ),
 | |
|             tabBodys = $G( "tabBodys" ).getElementsByTagName( "div" ),
 | |
|             i = 0, L = tabHeads.length;
 | |
|     //隐藏所有呈现元素
 | |
|     for ( ; i < L; i++ ) {
 | |
|         tabHeads[i].className = "";
 | |
|         tabBodys[i].style.display = "none";
 | |
|     }
 | |
|     //显示对应呈现元素
 | |
|     tabHeads[index].className = "focus";
 | |
|     tabBodys[index].style.display = "block";
 | |
| }
 | |
| 
 | |
| function autoHeight( index ) {
 | |
|     var iframe = dialog.getDom( "iframe" ),
 | |
|             parent = iframe.parentNode.parentNode;
 | |
|     switch ( index ) {
 | |
|         case 0:
 | |
|             iframe.style.height = "380px";
 | |
|             parent.style.height = "392px";
 | |
|             break;
 | |
|         case 1:
 | |
|             iframe.style.height = "220px";
 | |
|             parent.style.height = "232px";
 | |
|             break;
 | |
|         case 2:
 | |
|             iframe.style.height = "260px";
 | |
|             parent.style.height = "272px";
 | |
|             break;
 | |
|         case 3:
 | |
|             iframe.style.height = "300px";
 | |
|             parent.style.height = "312px";
 | |
|             break;
 | |
|         case 4:
 | |
|             iframe.style.height = "140px";
 | |
|             parent.style.height = "152px";
 | |
|             break;
 | |
|         case 5:
 | |
|             iframe.style.height = "260px";
 | |
|             parent.style.height = "272px";
 | |
|             break;
 | |
|         case 6:
 | |
|             iframe.style.height = "230px";
 | |
|             parent.style.height = "242px";
 | |
|             break;
 | |
|         default:
 | |
| 
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| function createTab( tabName ) {
 | |
|     var faceVersion = "?v=1.1", //版本号
 | |
|             tab = $G( tabName ), //获取将要生成的Div句柄
 | |
|             imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径
 | |
|             positionLine = 11 / 2, //中间数
 | |
|             iWidth = iHeight = 35, //图片长宽
 | |
|             iColWidth = 3, //表格剩余空间的显示比例
 | |
|             tableCss = emotion.imageCss[tabName],
 | |
|             cssOffset = emotion.imageCssOffset[tabName],
 | |
|             textHTML = ['<table class="smileytable">'],
 | |
|             i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage,
 | |
|             sUrl, realUrl, posflag, offset, infor;
 | |
| 
 | |
|     for ( ; i < imgNum; ) {
 | |
|         textHTML.push( '<tr>' );
 | |
|         for ( var j = 0; j < imgColNum; j++, i++ ) {
 | |
|             faceImage = emotion.SmileyBox[tabName][i];
 | |
|             if ( faceImage ) {
 | |
|                 sUrl = imagePath + faceImage + faceVersion;
 | |
|                 realUrl = imagePath + faceImage;
 | |
|                 posflag = j < positionLine ? 0 : 1;
 | |
|                 offset = cssOffset * i * (-1) - 1;
 | |
|                 infor = emotion.SmileyInfor[tabName][i];
 | |
| 
 | |
|                 textHTML.push( '<td  class="' + tableCss + '"   border="1" width="' + iColWidth + '%" style="border-collapse:collapse;" align="center"  bgcolor="transparent" onclick="InsertSmiley(\'' + realUrl.replace( /'/g, "\\'" ) + '\',event)" onmouseover="over(this,\'' + sUrl + '\',\'' + posflag + '\')" onmouseout="out(this)">' );
 | |
|                 textHTML.push( '<span>' );
 | |
|                 textHTML.push( '<img  style="background-position:left ' + offset + 'px;" title="' + infor + '" src="' + emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif" width="' : 'default/0.gif" width="') + iWidth + '" height="' + iHeight + '"></img>' );
 | |
|                 textHTML.push( '</span>' );
 | |
|             } else {
 | |
|                 textHTML.push( '<td width="' + iColWidth + '%"   bgcolor="#FFFFFF">' );
 | |
|             }
 | |
|             textHTML.push( '</td>' );
 | |
|         }
 | |
|         textHTML.push( '</tr>' );
 | |
|     }
 | |
|     textHTML.push( '</table>' );
 | |
|     textHTML = textHTML.join( "" );
 | |
|     tab.innerHTML = textHTML;
 | |
| }
 | |
| 
 | |
| function over( td, srcPath, posFlag ) {
 | |
|     td.style.backgroundColor = "#ACCD3C";
 | |
|     $G( 'faceReview' ).style.backgroundImage = "url(" + srcPath + ")";
 | |
|     if ( posFlag == 1 ) $G( "tabIconReview" ).className = "show";
 | |
|     $G( "tabIconReview" ).style.display = 'block';
 | |
| }
 | |
| 
 | |
| function out( td ) {
 | |
|     td.style.backgroundColor = "transparent";
 | |
|     var tabIconRevew = $G( "tabIconReview" );
 | |
|     tabIconRevew.className = "";
 | |
|     tabIconRevew.style.display = 'none';
 | |
| }
 | |
| 
 | |
| function createTabList( tabNum ) {
 | |
|     var obj = {};
 | |
|     for ( var i = 0; i < tabNum; i++ ) {
 | |
|         obj["tab" + i] = [];
 | |
|     }
 | |
|     return obj;
 | |
| }
 | |
| 
 | |
| function createArr( tabNum ) {
 | |
|     var arr = [];
 | |
|     for ( var i = 0; i < tabNum; i++ ) {
 | |
|         arr[i] = 0;
 | |
|     }
 | |
|     return arr;
 | |
| }
 | |
| 
 |