?? ubb.js
字號:
downText : {},
// 多媒體,ubb模式轉為可視化顯示
multimediaUbbToHtmlView : function (str, isXHTML) {
// <img class="flash" src="" _src="" _type="" width="" height="" />
// <img class="media" src="" _src="" _type="" width="" height="" />
str = str.replace(/\[(flash|wmv|wav|wma|rm|ra|mp3|mov)([^\]]*?)\]([\s\S]+?)\[\/\1\]/gi, function (str, type, args, src) {
var width = '', height = '', auto = '';
if (args) {
args = args.replace('=', '');
var _args = args.split(',');
args = '';
if (_args.length > 1) {
_args[0] = _args[0] || 400;
_args[1] = getH(_args[1]);
if (Browser.IsIE) {
width = 'style="width:' + _args[0] + (_args[0].indexOf('%') > -1 ? '' : 'px') + ';';
height = 'height:' + _args[1] + (_args[1].indexOf('%') > -1 ? '' : 'px') + ';"';
}
else {
width = ' width="' + _args[0] + '"';
height = ' height="' + _args[1] + '"';
}
auto = type != 'flash' && _args[2] ? ' _auto="' + _args[2] + '"' : '';
}
args = width + height + auto;
}
else {
if (Browser.IsIE)
args = ' style="width:400px;height:' + getH() + 'px;"';
else
args = ' width="400" height="' + getH() + '"';
}
function getH (h) {
switch (type) {
case 'ra':
case 'wma':
case 'mp3':
h = h || 36;
break;
case 'flash':
case 'rm':
case 'rmvb':
case 'wmv':
case 'mov':
h = h || 300;
break;
}
return h;
}
isXHTML || (src = UBB.replaceSignToUrl(src));
return '<img ' + args + ' _src="' + src + '" _type="' + type + '" src="images/transparent.gif" class="embedobject-' + (type == 'flash' ? 'flash' : 'media') + '" />';
});
//str = this.downtagUbbToHtmlCode(str);
return str;
},
// 多媒體,ubb模式轉為html代碼顯示
multimediaUbbToHtmlCode : function (str) {
/*
/\[flash\]\[\/flash\]/i;
/\[wmv\]\[\/wmv\]/i;
/\[wav\]\[\/wav\]/i;
/\[wma\]\[\/wma\]/i;
/\[rm\]\[\/rm\]/i;
/\[ra\]\[\/ra\]/i;
/\[mov\]\[\/wmv\]/i;
/\[mp3\]\[\/mp3\]/i;
*/
return str;
},
// 多媒體,html模式轉為ubb模式
multimediaHtmlToUbb : function (str) {
// flash
str = str.replace(/<img[^>]+?class="embedobject\-flash"[^>]*?>/gi, function (str) {
var arr = /_src="([^"]*?)"/i.exec(str);
var src = arr && arr[1] ? arr[1] : '';
// Gecko...
arr = /width="([^"]*?)"/i.exec(str);
var w = arr && arr[1] ? arr[1] : 0;
arr = /height="([^"]*?)"/i.exec(str);
var h = arr && arr[1] ? arr[1] : 0;
// IE...
arr = /width:\s*(\d+(?:px|%))/i.exec(str);
if (arr && arr[1]) w = arr[1].replace('px', '');
arr = /height:\s*(\d+(?:px|%))/i.exec(str);
if (arr && arr[1]) h = arr[1].replace('px', '');;
src = UBB.replaceUrlToSign(src);
if (!w && !h || w == 400 && h == 300)
str = '[flash]' + src + '[/flash]';
else
str = '[flash=' + w + ',' + h + ']' + src + '[/flash]';
return str;
});
// media
str = str.replace(/<img[^>]+?class="embedobject\-media"[^>]*?>/gi, function (str) {
var arr = /_src="([^"]*?)"/i.exec(str);
var src = arr && arr[1] ? arr[1] : '';
// Gecko...
arr = /width="([^"]*?)"/i.exec(str);
var w = arr && arr[1] ? arr[1] : 0;
arr = /height="([^"]*?)"/i.exec(str);
var h = arr && arr[1] ? arr[1] : 0;
// IE...
arr = /width:\s*(\d+(?:px|%))/i.exec(str);
if (arr && arr[1]) w = arr[1].replace('px', '');
arr = /height:\s*(\d+(?:px|%))/i.exec(str);
if (arr && arr[1]) h = arr[1].replace('px', '');;
arr = /_type="([^"]*?)"/i.exec(str);
var type = arr && arr[1] ? arr[1] : '';
arr = /_auto="([^"]*?)"/i.exec(str);
var auto = arr && arr[1] ? arr[1] : '';
var _h;
switch (type) {
case 'ra':
case 'wma':
case 'mp3':
_h = 36;
break;
case 'flash':
case 'rm':
case 'rmvb':
case 'wmv':
case 'mov':
_h = 300;
break;
}
var arg = (w && h && !(w == 400 && h == _h) ? '=' + w + (h ? ',' + h : '') : '');
if (arg != '' && auto != '') {
arg += ',' + auto;
}
else if (arg == '' && auto != '') {
arg = '=' + auto;
}
src = UBB.replaceUrlToSign(src);
str = '[' + type + arg + ']' + src + '[/' + type + ']';
return str;
});
//str = this.downtagHtmlToUbb(str);
return str;
},
/// 轉換多媒體
mediaUBBUrlToSign : function (str) {
str = str.replace(/(\[(flash|wmv|wav|wma|rm|ra|mp3|mov)([^\]]*?)\])([\s\S]+?)(\[\/\2\])/gi, function (str, l1, l2, l3, m, r) {
m = UBB.replaceUrlToSign(m);
return l1 + m + r;
});
return str;
},
/// 轉換圖片, WYSIWYG <=> XHTML
// XHTML => WYSIWYG
imageHTMLSignToUrl : function (str) {
str = str.replace(/(<img[^>]+?src=")([^"]+?)("[^>]*?\/?>)/gi, function (str, l, m, r) {
m = UBB.replaceSignToUrl(m);
return l + m + r;
});
return str;
},
// WYSIWYG => XHTML
imageHTMLUrlToSign : function (str) {
str = str.replace(/(<img[^>]+?src=")([^"]+?)("[^>]*?\/?>)/gi, function (str, l, m, r) {
m = UBB.replaceUrlToSign(m);
return l + m + r;
});
// link
str = this.linkHTMLUrlToSign(str);
return str;
},
// UBB => WYSIWYG,XHTML
imageUBBSignToUrl : function (str) {
str = str.replace(/(\[img[^\]]*\])([\s\S]+?)(\[\/img\])/gi, function (str, l, m, r) {
m = UBB.replaceSignToUrl(m);
return l + m + r;
});
return str;
},
imageUBBUrlToSign : function (str) {
str = str.replace(/(\[img[^\]]*\])([\s\S]+?)(\[\/img\])/gi, function (str, l, m, r) {
m = UBB.replaceUrlToSign(m);
return l + m + r;
});
// link
str = this.linkUBBUrlToSign(str);
return str;
},
// 轉換鏈接
linkHTMLUrlToSign : function (str) {
str = str.replace(/(<a[^>]+?href=")([^"]+?)("[^>]*?>[\s\S]+?<\/a>)/gi, function (str, l, m, r) {
m = UBB.replaceUrlToSign(m);
return l + m + r;
});
return str;
},
linkUBBUrlToSign : function (str) {
str = str.replace(/(\[url=)([^\]]+?)(\][\s\S]+?)(\[\/url\])/gi, function (str, l1, l2, m, r) {
l2 = UBB.replaceUrlToSign(l2);
return l1 + l2 + m + r;
});
return str;
},
/// 轉換url地址
urlMode : {},
// 判斷是否當前網站的url
replaceUrlToSign : function (url) {
if (/^http:/i.test(url) && !(new RegExp('^http:\/\/' + location.host, 'i')).test(url)) return url;
url = url.replace(/[\s\S]*outputfile\.aspx\?fileid=([0-9a-z]{8}[0-9a-z]{4}[0-9a-z]{4}[0-9a-z]{4}[0-9a-z]{12})[\s\S]*/i, '#file:$1#');
url = url.replace(/[\s\S]*outputfile\.aspx\?fileid=(\d+)[\s\S]*/i, '#file:$1#');
url = url.replace(/[\s\S]*attachment\.aspx\?id=(\d+)[\s\S]*/i, function (str, fileid) {
var mode = /(?:\?|&)(mode=.+?)(?:&|$)/i.exec(str);
mode && mode[1] && (UBB.urlMode[fileid] = mode[1]);
return '#attach:' + fileid + '#';
});
return url;
},
replaceSignToUrl : function (sign) {
sign = sign.replace(/#file:([0-9a-z]{8}[0-9a-z]{4}[0-9a-z]{4}[0-9a-z]{4}[0-9a-z]{12})#/i, 'outputfile.aspx?fileid=$1');
sign = sign.replace(/#file:(\d+)#/i, 'outputfile.aspx?fileid=$1');
sign = sign.replace(/#attach:(\d+)#/i, function (str, fileid) {
return 'attachment.aspx?id=' + fileid + '&' + UBB.urlMode[fileid];
});
return sign;
},
///
// [code]內部代碼暫存
codeStore : function (str, codes) {
str = str.replace(/\[code\]\[\/code\]/gi, '');
while (/\[code\](?:(?!\[code\])[\s\S])+?\[\/code\]/i.test(str)) {
str = str.replace(/\[code\]((?:(?!\[code\])[\s\S])*?)\[\/code\]/i, function (str, m1) {
codes.push(m1);
return '\x02';
});
}
return str;
},
// [code]內部代碼恢復
codeRestore : function (str, codes, type) {
var i = 0;
while (/\x02/i.test(str)) {
str = str.replace(/\x02/i, '[code]' + (type == 'html' ? this.changeHtmlEntities(codes[i]) : this.unchangeHtmlEntities(codes[i])) + '[/code]');
i++
}
return str;
},
// 提取屬性值
extractValue : function (str) {
str = str.replace(/"|'/g, '');
str = str.split('=')[1];
return str;
},
// 移除換行
removeCrlf : function (str) {
return this.replaceSpace(str.replace(/\r\n|\r|\n/g, ''));
},
replaceSpace : function (str) {
return str.replace(/ /g, '\x01');
},
retrieveSpace : function (str) {
return str.replace(/\x01/g, ' ');
},
// 替換空格
replaceSpaceToNbsp : function (str) {
str = str.replace(/ /g, ' ');
return str;
},
// 替換空格
replaceNbspToSpace : function (str) {
str = str.replace(/ /g, ' ');
return str;
},
// 轉義
changeHtmlEntities : function (str) {
str = str.replace(/&/g, '&');
str = str.replace(/ /g, ' ');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/\r\n|\r|\n/g, '<br />');
return str;
},
// 反轉義
unchangeHtmlEntities : function (str) {
str = str.replace(/ /g, ' ');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/&/g, '&');
str = str.replace(/<br[^>]*?>/gi, '\r\n');
return str;
},
// 移除其它標簽
htmlEntities : function (str) {
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
return str;
},
unhtmlEntities : function (str) {
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/&/g, '&');
return str;
},
// 移除其它標簽
removeHtmlTag : function (html) {
html = html.replace(/<\/?[^>]+?>/g, '');
return html;
}
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -