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.
222 lines
5.8 KiB
222 lines
5.8 KiB
6 months ago
|
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;
|
||
|
}
|