📄 editor.js
字号:
str=str.replace(/\[b\](.+?)\[\/b\]/ig,"<b>$1</b>");/*粗体*/
str=str.replace(/\[strike\](.+?)\[\/strike\]/ig,"<strike>$1</strike>");/*删除线*/
str=str.replace(/\[left\](.*?)\[\/left\]/ig,"<div align=left>$1</div>");/*居左*/
str=str.replace(/\[center\](.*?)\[\/center\]/ig,"<div align=center>$1</div>");/*居中*/
str=str.replace(/\[right\](.*?)\[\/right\]/ig,"<div align=right>$1</div>");/*居右*/
str=str.replace(/\[fly\](.+?)\[\/fly\]/ig,"<marquee width=100% behavior=alternate scrollamount=3>$1</marquee>");/*飞行字*/
str=str.replace(/\[move\](.+?)\[\/move\]/ig,"<marquee scrollamount=3>$1</marquee>");/*移动字*/
//str=str.replace(/\[quote\](.+?)\[\/quote\]/ig,"<blockquote><font size=2 face=\"Verdana, Arial\">引用:</font>$1</blockquote>");/*引用*/
str=str.replace(/\[face\=(.+?)\](.+?)\[\/face\]/ig,"<font face=\"$1\">$2</font>");/*字体*/
str=str.replace(/\[size\=(.+?)\](.+?)\[\/size\]/ig,"<font size=\"$1\">$2</font>");/*字大小*/
str=str.replace(/\[color\=(.+?)\](.+?)\[\/color\]/ig,"<font color=\"$1\">$2</font>");/*颜色*/
str=str.replace(/\[email\=(.+?)\](.+?)\[\/email\]/ig,"<a href=\"mailto:$1\">$2</a>");/*邮件*/
str=str.replace(/\[url\=(.+?)\](.+?)\[\/url\]/ig,"<a href=$1>$2</a>");/*链接http://*/
str=str.replace(/\[marquee\](.+?)\[\/marquee\]/ig,"<marquee scrollamount=\"3\" onmouseover=\"javascript:this.stop()\" onmouseout=\"javascript:this.start()\">$1</marquee>");/*滚动*/
str=str.replace(/\[img\](\S+?)\[\/img\]/ig,"<img src=\"$1\" border=0 resize=\"1\" />");/*图片*/
str=str.replace(/\[bgcolor\=(.+?)\](.+?)\[\/bgcolor\]/ig,"<FONT style=$1>$2</FONT>");/*文字背景颜色*/
str=str.replace(/\[HR(.*?)]/gi,"<HR size=1>");
str=str.replace(/\[sup\](.+?)\[\/sup\]/ig,"<sup>$1</sup>");
str=str.replace(/\[sub\](.+?)\[\/sub\]/ig,"<sub>$1</sub>");
return str;
}
function nohtml(str) {
str=str.replace(/<\/?[^>]+>/g,"");
str=str.replace(/[ | ]*\n/g,'\n');;
str=str.replace(/\n[\s| | ]*\r/g,'\n');
return str;
}
function FtConvertAttribute(str)
{
if (SAFE_MODE == true) {
str = FtClearAttributeScriptTag(str);
}
return str;
}
function FtClearAttributeScriptTag(str)
{
var re = new RegExp("(\\son[a-z]+=)[\"']?[^>]*?[^\\\\\>][\"']?([\\s>])","ig");
str = str.replace(re, function ($0,$1,$2) {
return($1.toLowerCase() + "\"\"" + $2);
}
);
return str;
}
function FtClearScriptTag(str)
{
if (SAFE_MODE == false) {
return str;
}
str = str.replace(/<(script.*?)>/gi, "[$1]");
str = str.replace(/<\/script>/gi, "[/script]");
return str;
}
function FtTrim(str)
{
str = str.replace(/^\s+|\s+$/g, "");
str = str.replace(/[\r\n]+/g, "\r\n");
return str;
}
function FtHtmlentities(str)
{
str = str.replace(/&/g,'&');
str = str.replace(/</g,'<');
str = str.replace(/>/g,'>');
str = str.replace(/"/g,'"');
return str;
}
function FtHtmlentitiesDecode(str)
{
str = str.replace(/</g,'<');
str = str.replace(/>/g,'>');
str = str.replace(/"/g,'"');
str = str.replace(/&/g,'&');
return str;
}
function FtGetTop(id)
{
var top = 26;
var tmp = '';
var obj = document.getElementById(id);
while (eval("obj" + tmp).tagName != "BODY") {
tmp += ".offsetParent";
top += eval("obj" + tmp).offsetTop;
}
return top;
}
function FtGetLeft(id)
{
var left = 0;
var tmp = '';
var obj = document.getElementById(id);
while (eval("obj" + tmp).tagName != "BODY") {
tmp += ".offsetParent";
left += eval("obj" + tmp).offsetLeft;
}
return left;
}
function FtDisplayMenu(cmd)
{
FtEditorForm.focus();
FtSelection();
FtDisableMenu();
var top, left;
top = FtGetTop(cmd);
left = FtGetLeft(cmd);
if (CurrentMode == "code"){
top = top-26;
left = left+115;
}
if (cmd == 'Ft_LINK') {
left -= 220;
}else if (cmd == 'Ft_IMAGE' || cmd == 'Ft_FLASH' || cmd == 'Ft_MEDIA') {
if (CurrentMode == "code"){
left -= 283;
}else{
left -= 230;
}
}else if (cmd == 'Ft_ICON'){
left -= 145;
}
document.getElementById('POPUP_'+cmd).style.top = top.toString(10) + 'px';
document.getElementById('POPUP_'+cmd).style.left = left.toString(10) + 'px';
document.getElementById('POPUP_'+cmd).style.display = 'block';
}
function FtDisableMenu()
{
for (i = 0; i < POPUP_MENU_TABLE.length; i++) {
document.getElementById('POPUP_'+POPUP_MENU_TABLE[i]).style.display = 'none';
}
}
function FtReloadIframe()
{
var str = '';
str += FtPopupMenu('Ft_IMAGE');
str += FtPopupMenu('Ft_FLASH');
str += FtPopupMenu('Ft_MEDIA');
//document.getElementById('InsertIframe').innerHTML = str;
FtDrawIframe('Ft_IMAGE');
FtDrawIframe('Ft_FLASH');
FtDrawIframe('Ft_MEDIA');
FtDrawIframe('Ft_LINK');
}
function FtGetMenuCommonStyle()
{
var str = 'position:absolute;top:1px;left:1px;font-size:12px;color:'+MENU_TEXT_COLOR+
';background-color:'+MENU_BG_COLOR+';border:solid 1px '+MENU_BORDER_COLOR+';z-index:1;display:none;';
return str;
}
function FtGetCommonMenu(cmd, content)
{
var str = '';
str += '<div id="POPUP_'+cmd+'" style="'+FtGetMenuCommonStyle()+'">';
str += content;
str += '</div>';
return str;
}
function FtCreateColorTable(cmd, eventStr)
{
var str = '';
str += '<table cellpadding="0" cellspacing="2" border="0">';
for (i = 0; i < COLOR_TABLE.length; i++) {
if (i == 0 || (i >= 5 && i%5 == 0)) {
str += '<tr>';
}
str += '<td style="width:12px;height:12px;border:1px solid #CAD9EA;font-size:1px;cursor:pointer;background-color:' +
COLOR_TABLE[i] + ';" onmouseover="javascript:this.style.borderColor=\'#000000\';' + ((eventStr) ? eventStr : '') + '" ' +
'onmouseout="javascript:this.style.borderColor=\'#CAD9EA\';" ' +
'onclick="javascript:FtExecute(\''+cmd+'_END\', \'' + COLOR_TABLE[i] + '\');"> </td>';
if (i >= 4 && i%(i-1) == 0) {
str += '</tr>';
}
}
str += '</table>';
return str;
}
function FtDrawColorTable(cmd)
{
var str = '';
str += '<div id="POPUP_'+cmd+'" style="width:80px;padding:2px;'+FtGetMenuCommonStyle()+'">';
str += FtCreateColorTable(cmd);
str += '</div>';
return str;
}
//media iframe
function FtDrawMedia(cmd)
{
var str = '';
str += '<table cellpadding="0" cellspacing="0" style="width:100%">' +
'<tr><td align="left" style="padding:5px;">'+STR_IMAGE_REMOTE+' <input type="text" id="'+cmd+'link" value="http://" style="width:190px;border:1px solid #CAD9EA;" /></td></tr>' +
'<tr><td align="left" style="padding:5px;">类型<input type="radio" name="media" id="media1" value="wmv" checked>WMA,WMV,MP3..<input type="radio" name="media" id="media2" value="rm">RM,RMVB<input type="radio" name="media" id="media3" value="flv">FLV</td></tr>'+
'<tr><td align="left" style="padding:5px;">宽度 <input type="text" id="'+cmd+'w" size="3" value="500" style="border:1px solid #CAD9EA;"/> 高度 <input type="text" size="3" value="400" id="'+cmd+'h" style="border:1px solid #CAD9EA;"/>'+
' <select name="auto" id="'+cmd+'auto"><option value="0" selected="selected">手动</option><option value="1">自动</option></td></tr>'+
'<tr><td style="margin:5px;padding-bottom:5px;" align="center">' +
'<input type="submit" name="button" id="'+cmd+'submitButton" value="'+STR_BUTTON_CONFIRM+'" onclick="javascript:parent.FtDrawMediaEnd(\''+cmd+'\');" style="border:1px solid #CAD9EA;background-color:'+BUTTON_COLOR+';" /> ' +
'<input type="button" name="button" value="'+STR_BUTTON_CANCEL+'" onclick="javascript:parent.FtDisableMenu();" style="border:1px solid #CAD9EA;background-color:'+BUTTON_COLOR+';" /></td></tr>' +
'</table>';
return str;
}
function FtPopupMenu(cmd)
{
switch (cmd)
{
case 'Ft_TITLE':
var str = '';
for (i = 0; i < TITLE_TABLE.length; i++) {
str += '<div style="width:140px;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_TITLE_END\', \'' + TITLE_TABLE[i][0] + '\');" ' +
'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';"><' + TITLE_TABLE[i][0] + ' style="margin:2px;">' +
TITLE_TABLE[i][1] + '</' + TITLE_TABLE[i][0] + '></div>';
}
str = FtGetCommonMenu('Ft_TITLE', str);
return str;
break;
case 'Ft_FONTNAME':
var str = '';
for (i = 0; i < FONT_NAME.length; i++) {
str += '<div style="font-family:' + FONT_NAME[i][0] +
';padding:2px;width:90px;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_FONTNAME_END\', \'' + FONT_NAME[i][0] + '\');" ' +
'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';">' +
FONT_NAME[i][1] + '</div>';
}
str = FtGetCommonMenu('Ft_FONTNAME', str);
return str;
break;
case 'Ft_FONTSIZE':
var str = '';
for (i = 0; i < FONT_SIZE.length; i++) {
str += '<div style="font-size:' + FONT_SIZE[i][1] +
';padding:2px;width:120px;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_FONTSIZE_END\', \'' + FONT_SIZE[i][0] + '\');" ' +
'onmouseover="javascript:this.style.backgroundColor=\''+MENU_SELECTED_COLOR+'\';" ' +
'onmouseout="javascript:this.style.backgroundColor=\''+MENU_BG_COLOR+'\';">' +
FONT_SIZE[i][1] + '</div>';
}
str = FtGetCommonMenu('Ft_FONTSIZE', str);
return str;
break;
case 'Ft_TEXTCOLOR':
var str = '';
str = FtDrawColorTable('Ft_TEXTCOLOR');
return str;
break;
case 'Ft_BGCOLOR':
var str = '';
str = FtDrawColorTable('Ft_BGCOLOR');
return str;
break;
case 'Ft_HR':
var str = '';
str += '<div id="POPUP_'+cmd+'" style="width:80px;'+FtGetMenuCommonStyle()+'">';
str += '<div id="hrPreview" style="margin:10px 2px 10px 2px;height:1px;border:0;font-size:0;background-color:#FFFFFF;"></div>';
str += FtCreateColorTable(cmd, 'document.getElementById(\'hrPreview\').style.backgroundColor = this.style.backgroundColor;');
str += '</div>';
return str;
break;
case 'Ft_ICON':
var str = '';
var iconNum = 36;
var aiconNum = 24;
var biconNum = 24;
str += '<table id="POPUP_'+cmd+'" style="'+FtGetMenuCommonStyle()+'">';
str += '<tr><td><table width="99%" border="0" cellspacing="0" cellpadding="0"><tr style="font-size: 12px;"><td align="center"><a href="javascript:show_tb(\'t_\',3,1)">QQ系列</a></td><td align="center"><a href="javascript:show_tb(\'t_\',3,2)">兔斯基</a></td><td align="center"><a href="javascript:show_tb(\'t_\',3,3)">洋葱头</a></td></tr></table>';
str += '<table width="100%" border="0" cellspacing="2" cellpadding="0" id="t_1" name="t_1">';
for (i = 0; i < iconNum; i++) {
if (i == 0 || (i >= 6 && i%6 == 0)) {
str += '<tr>';
}
var num;
num = (i+1).toString(10);
var iconUrl = ICON_PATH + num + '.gif';
str += '<td style="padding:2px;border:0;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_ICON_END\', \'' + iconUrl + '\');">' +
'<img width="20" height="20" src="' + iconUrl + '" style="border:1px solid #EEEEEE;" onmouseover="javascript:this.style.borderColor=\'#CAD9EA\';" ' +
'onmouseout="javascript:this.style.borderColor=\'#EEEEEE\';">' + '</td>';
if (i >= 5 && i%(i-1) == 0) {
str += '</tr>';
}
}
str += '</table><table width="100%" border="0" cellspacing="2" cellpadding="0" id="t_2" name="t_2" style="display:none">';
for (n = 0; n < biconNum; n++) {
if (n == 0 || (n >= 6 && n%6 == 0)) {
str += '<tr>';
}
var bnum;
bnum = (n+1).toString(10);
var iconUrl = ICON_PATH +'b'+ bnum + '.gif';
str += '<td style="padding:1px;border:0;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_ICON_END\', \'' + iconUrl + '\');">' +
'<img width="35" height="35" src="' + iconUrl + '" style="border:1px solid #EEEEEE;" onmouseover="javascript:this.style.borderColor=\'#CAD9EA\';" ' +
'onmouseout="javascript:this.style.borderColor=\'#EEEEEE\';">' + '</td>';
if (n >= 5 && n%(n-1) == 0) {
str += '</tr>';
}
}
str += '</table><table width="100%" border="0" cellspacing="2" cellpadding="0" id="t_3" name="t_3" style="display:none">';
for (m = 0; m < aiconNum; m++) {
if (m == 0 || (m >= 6 && m%6 == 0)) {
str += '<tr>';
}
var anum;
anum = (m+1).toString(10);
var iconUrl = ICON_PATH +'a'+ anum + '.gif';
str += '<td style="padding:1px;border:0;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_ICON_END\', \'' + iconUrl + '\');">' +
'<img width="30" height="30" src="' + iconUrl + '" style="border:1px solid #EEEEEE;" onmouseover="javascript:this.style.borderColor=\'#CAD9EA\';" ' +
'onmouseout="javascript:this.style.borderColor=\'#EEEEEE\';">' + '</td>';
if (m >= 5 && m%(m-1) == 0) {
str += '</tr>';
}
}
str += '</table></td></tr></table>';
return str;
break;
case 'Ft_TABLE':
var str = '';
var num = 10;
str += '<table id="POPUP_'+cmd+'" cellpadding="0" cellspacing="0" style="'+FtGetMenuCommonStyle()+'">';
for (i = 1; i <= num; i++) {
str += '<tr>';
for (j = 1; j <= num; j++) {
var value = i.toString(10) + ',' + j.toString(10);
str += '<td id="FtTableTd' + i.toString(10) + '_' + j.toString(10) +
'" style="width:15px;height:15px;background-color:#FFFFFF;border:1px solid #DDDDDD;cursor:pointer;" ' +
'onclick="javascript:FtExecute(\'Ft_TABLE_END\', \'' + value + '\');" ' +
'onmouseover="javascript:FtDrawTableSelected(\''+i.toString(10)+'\', \''+j.toString(10)+'\');" ' +
'onmouseout="javascript:;"> </td>';
}
str += '</tr>';
}
str += '<tr><td colspan="10" id="tableLocation" style="text-align:center;height:20px;"></td></tr>';
str += '</table>';
return str;
break;
case 'Ft_IMAGE':
var str = '';
str += '<div id="POPUP_'+cmd+'" style="width:250px;'+FtGetMenuCommonStyle()+'">';
str += '<iframe name="FtImageIframe" id="FtImageIframe" frameborder="0" style="width:250px;height:280px;padding:0;margin:0;border:0;">';
str += '</iframe></div>';
return str;
break;
case 'Ft_FLASH':
var str = '';
str += '<div id="POPUP_'+cmd+'" style="width:250px;'+FtGetMenuCommonStyle()+'">';
str += '<iframe name="FtFlashIframe" id="FtFlashIframe" frameborder="0" style="width:250px;height:100px;padding:0;margin:0;border:0;">';
str += '</iframe></div>';
return str;
break;
case 'Ft_MEDIA':
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -