📄 common.js
字号:
if(!floatwinhandle[handlekey + '_3']) {
var clientWidth = document.body.clientWidth;
var clientHeight = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
var w = clientWidth > 800 ? clientWidth * 0.9 : 800;
var h = clientHeight * 0.9;
floatwinhandle[handlekey + '_3'] = $(layerid).style.left;
floatwinhandle[handlekey + '_4'] = $(layerid).style.top;
floatwinhandle[handlekey + '_5'] = $(layerid).style.width;
floatwinhandle[handlekey + '_6'] = $(layerid).style.height;
$(layerid).style.left = floatwinhandle[handlekey + '_1'] = ((clientWidth - w) / 2) + 'px';
$(layerid).style.top = floatwinhandle[handlekey + '_2'] = ((document.documentElement.clientHeight - h) / 2 + document.documentElement.scrollTop) + 'px';
$(layerid).style.width = w + 'px';
$(layerid).style.height = h + 'px';
} else {
$(layerid).style.left = floatwinhandle[handlekey + '_1'] = floatwinhandle[handlekey + '_3'];
$(layerid).style.top = floatwinhandle[handlekey + '_2'] = floatwinhandle[handlekey + '_4'];
$(layerid).style.width = floatwinhandle[handlekey + '_5'];
$(layerid).style.height = floatwinhandle[handlekey + '_6'];
floatwinhandle[handlekey + '_3'] = '';
}
$(layerid + '_mask').style.width = (parseInt($(layerid).style.width) + 14) + 'px';
$(layerid + '_mask').style.height = (parseInt($(layerid).style.height) + 14) + 'px';
$(layerid + '_mask').style.left = (parseInt($(layerid).style.left) - 6) + 'px';
$(layerid + '_mask').style.top = (parseInt($(layerid).style.top) - 6) + 'px';
}
}
function floatwin_scroll(pos) {
var pose = pos.split(',');
try {
pagescroll.defaultleft = pose[0];
pagescroll.defaulttop = pose[1];
pagescroll.init();
} catch(e) {}
}
function floatwin_wrapkeyhandle(e) {
e = is_ie ? event : e;
if(e.keyCode == 9) {
doane(e);
} else if(e.keyCode == 27) {
for(i = floatwins.length - 1;i >= 0; i--) {
floatwin('close_' + floatwins[i]);
}
}
}
function floatwin_keyhandle(e) {
e = is_ie ? event : e;
if(e.keyCode == 9) {
doane(e);
var obj = is_ie ? e.srcElement : e.target;
var srcobj = obj;
j = 0;
while(obj.className.indexOf('floatbox') == -1) {
obj = obj.parentNode;
}
obj.id = obj.id ? obj.id : 'floatbox_' + Math.random();
if(!floattabs[obj.id]) {
floattabs[obj.id] = new Array();
var alls = obj.getElementsByTagName("*");
for(i = 0;i < alls.length;i++) {
if(alls[i].getAttribute('tabindex') == 1) {
floattabs[obj.id][j] = alls[i];
j++;
}
}
}
if(floattabs[obj.id].length > 0) {
for(i = 0;i < floattabs[obj.id].length;i++) {
if(srcobj == floattabs[obj.id][i]) {
j = e.shiftKey ? i - 1 : i + 1;break;
}
}
if(j < 0) {
j = floattabs[obj.id].length - 1;
}
if(j > floattabs[obj.id].length - 1) {
j = 0;
}
do{
focusok = 1;
try{ floattabs[obj.id][j].focus(); } catch(e) {
focusok = 0;
}
if(!focusok) {
j = e.shiftKey ? j - 1 : j + 1;
if(j < 0) {
j = floattabs[obj.id].length - 1;
}
if(j > floattabs[obj.id].length - 1) {
j = 0;
}
}
} while(!focusok);
}
}
}
//ShowSelect
function showselect(obj, inpid, t, rettype) {
if(!obj.id) {
var t = !t ? 0 : t;
var rettype = !rettype ? 0 : rettype;
obj.id = 'calendarexp_' + Math.random();
div = document.createElement('div');
div.id = obj.id + '_menu';
div.style.display = 'none';
div.className = 'showselect_menu';
if($(InFloat) != null) {
$(InFloat).appendChild(div);
} else {
$('append_parent').appendChild(div);
}
s = '';
if(!t) {
s += showselect_row(inpid, '一天', 1, 0, rettype);
s += showselect_row(inpid, '一周', 7, 0, rettype);
s += showselect_row(inpid, '一个月', 30, 0, rettype);
s += showselect_row(inpid, '三个月', 90, 0, rettype);
s += showselect_row(inpid, '自定义', -2);
} else {
if($(t)) {
var lis = $(t).getElementsByTagName('LI');
for(i = 0;i < lis.length;i++) {
s += '<a href="javascript:;" onclick="$(\'' + inpid + '\').value = this.innerHTML">' + lis[i].innerHTML + '</a><br />';
}
s += showselect_row(inpid, '自定义', -1);
} else {
s += '<a href="javascript:;" onclick="$(\'' + inpid + '\').value = \'0\'">永久</a><br />';
s += showselect_row(inpid, '7 天', 7, 1, rettype);
s += showselect_row(inpid, '14 天', 14, 1, rettype);
s += showselect_row(inpid, '一个月', 30, 1, rettype);
s += showselect_row(inpid, '三个月', 90, 1, rettype);
s += showselect_row(inpid, '半年', 182, 1, rettype);
s += showselect_row(inpid, '一年', 365, 1, rettype);
s += showselect_row(inpid, '自定义', -1);
}
}
$(div.id).innerHTML = s;
}
showMenu(obj.id);
if(is_ie && is_ie < 7) {
doane(event);
}
}
function showselect_row(inpid, s, v, notime, rettype) {
if(v >= 0) {
if(!rettype) {
var notime = !notime ? 0 : 1;
t = today.getTime();
t += 86400000 * v;
d = new Date();
d.setTime(t);
return '<a href="javascript:;" onclick="$(\'' + inpid + '\').value = \'' + d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + (!notime ? ' ' + d.getHours() + ':' + d.getMinutes() : '') + '\'">' + s + '</a><br />';
} else {
return '<a href="javascript:;" onclick="$(\'' + inpid + '\').value = \'' + v + '\'">' + s + '</a><br />';
}
} else if(v == -1) {
return '<a href="javascript:;" onclick="$(\'' + inpid + '\').focus()">' + s + '</a><br />';
} else if(v == -2) {
return '<a href="javascript:;" onclick="$(\'' + inpid + '\').onclick()">' + s + '</a><br />';
}
}
//Smilies
function smilies_show(id, smcols, method, seditorkey) {
if(seditorkey && !$(seditorkey + 'smilies_menu')) {
var div = document.createElement("div");
div.id = seditorkey + 'smilies_menu';
div.style.display = 'none';
div.className = 'smilieslist';
$('append_parent').appendChild(div);
var div = document.createElement("div");
div.id = id;
div.style.overflow = 'hidden';
$(seditorkey + 'smilies_menu').appendChild(div);
}
if(typeof smilies_type == 'undefined') {
var scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.charset = charset ? charset : (is_moz ? document.characterSet : document.charset);
scriptNode.src = 'forumdata/cache/smilies_var.js?' + VERHASH;
$('append_parent').appendChild(scriptNode);
if(is_ie) {
scriptNode.onreadystatechange = function() {
smilies_onload(id, smcols, method, seditorkey);
}
} else {
scriptNode.onload = function() {
smilies_onload(id, smcols, method, seditorkey);
}
}
} else {
smilies_onload(id, smcols, method, seditorkey);
}
}
var currentstype = null;
function smilies_onload(id, smcols, method, seditorkey) {
seditorkey = !seditorkey ? '' : seditorkey;
smile = getcookie('smile').split('D');
if(typeof smilies_type == 'object') {
if(smile[0] && smilies_array[smile[0]]) {
currentstype = smile[0];
} else {
for(i in smilies_array) {
currentstype = i; break;
}
}
smiliestype = '<div class="smiliesgroup" style="margin-right: 0"><ul>';
for(i in smilies_type) {
if(smilies_type[i][0]) {
smiliestype += '<li><a href="javascript:;" hidefocus="true" ' + (currentstype == i ? 'class="current"' : '') + ' id="stype_'+method+'_'+i+'" onclick="smilies_switch(\'' + id + '\', \'' + smcols + '\', '+i+', 1, ' + method + ', \'' + seditorkey + '\');if(currentstype) {$(\'stype_'+method+'_\'+currentstype).className=\'\';}this.className=\'current\';currentstype='+i+';">'+smilies_type[i][0]+'</a></li>';
}
}
smiliestype += '</ul></div>';
$(id).innerHTML = smiliestype + '<div style="clear: both" class="float_typeid" id="' + id + '_data"></div><table class="smilieslist_table" id="' + id + '_preview_table" style="display: none"><tr><td class="smilieslist_preview" id="' + id + '_preview"></td></tr></table><div style="clear: both" class="smilieslist_page" id="' + id + '_page"></div>';
smilies_switch(id, smcols, currentstype, smile[1], method, seditorkey);
}
}
function smilies_switch(id, smcols, type, page, method, seditorkey) {
page = page ? page : 1;
if(!smilies_array[type] || !smilies_array[type][page]) return;
setcookie('smile', type + 'D' + page, 31536000);
smiliesdata = '<table id="' + id + '_table" cellpadding="0" cellspacing="0" style="clear: both"><tr>';
j = k = 0;
img = new Array();
for(i in smilies_array[type][page]) {
if(j >= smcols) {
smiliesdata += '<tr>';
j = 0;
}
s = smilies_array[type][page][i];
smilieimg = 'images/smilies/' + smilies_type[type][1] + '/' + s[2];
img[k] = new Image();
img[k].src = smilieimg;
smiliesdata += s && s[0] ? '<td onmouseover="smilies_preview(\'' + id + '\', this, ' + s[5] + ')" onmouseout="smilies_preview(\'' + id + '\')" onclick="' + (method ? 'insertSmiley(' + s[0] + ')': 'seditor_insertunit(\'' + seditorkey + '\', \'' + s[1].replace(/'/, '\\\'') + '\')') +
'"><img id="smilie_' + s[0] + '" width="' + s[3] +'" height="' + s[4] +'" src="' + smilieimg + '" alt="' + s[1] + '" />' : '<td>';
j++;k++;
}
smiliesdata += '</table>';
smiliespage = '';
if(smilies_array[type].length > 2) {
prevpage = ((prevpage = parseInt(page) - 1) < 1) ? smilies_array[type].length - 1 : prevpage;
nextpage = ((nextpage = parseInt(page) + 1) == smilies_array[type].length) ? 1 : nextpage;
smiliespage = '<div class="pags_act"><a href="javascript:;" onclick="smilies_switch(\'' + id + '\', \'' + smcols + '\', ' + type + ', ' + prevpage + ', ' + method + ', \'' + seditorkey + '\')">上页</a>' +
'<a href="javascript:;" onclick="smilies_switch(\'' + id + '\', \'' + smcols + '\', ' + type + ', ' + nextpage + ', ' + method + ', \'' + seditorkey + '\')">下页</a></div>' +
page + '/' + (smilies_array[type].length - 1);
}
$(id + '_data').innerHTML = smiliesdata;
$(id + '_page').innerHTML = smiliespage;
}
function smilies_preview(id, obj, v) {
if(!obj) {
$(id + '_preview_table').style.display = 'none';
} else {
$(id + '_preview_table').style.display = '';
$(id + '_preview').innerHTML = '<img width="' + v + '" src="' + obj.childNodes[0].src + '" />';
}
}
//SEditor
function seditor_ctlent(event, script) {
if(event.ctrlKey && event.keyCode == 13 || event.altKey && event.keyCode == 83) {
eval(script);
}
}
function parseurl(str, mode, parsecode) {
if(!parsecode) str= str.replace(/\s*\[code\]([\s\S]+?)\[\/code\]\s*/ig, function($1, $2) {return codetag($2);});
str = str.replace(/([^>=\]"'\/]|^)((((https?|ftp):\/\/)|www\.)([\w\-]+\.)*[\w\-\u4e00-\u9fa5]+\.([\.a-zA-Z0-9]+|\u4E2D\u56FD|\u7F51\u7EDC|\u516C\u53F8)((\?|\/|:)+[\w\.\/=\?%\-&~`@':+!]*)+\.(jpg|gif|png|bmp))/ig, mode == 'html' ? '$1<img src="$2" border="0">' : '$1[img]$2[/img]');
str = str.replace(/([^>=\]"'\/@]|^)((((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast):\/\/))([\w\-]+\.)*[:\.@\-\w\u4e00-\u9fa5]+\.([\.a-zA-Z0-9]+|\u4E2D\u56FD|\u7F51\u7EDC|\u516C\u53F8)((\?|\/|:)+[\w\.\/=\?%\-&~`@':+!#]*)*)/ig, mode == 'html' ? '$1<a href="$2" target="_blank">$2</a>' : '$1[url]$2[/url]');
str = str.replace(/([^\w>=\]"'\/@]|^)((www\.)([\w\-]+\.)*[:\.@\-\w\u4e00-\u9fa5]+\.([\.a-zA-Z0-9]+|\u4E2D\u56FD|\u7F51\u7EDC|\u516C\u53F8)((\?|\/|:)+[\w\.\/=\?%\-&~`@':+!#]*)*)/ig, mode == 'html' ? '$1<a href="$2" target="_blank">$2</a>' : '$1[url]$2[/url]');
str = str.replace(/([^\w->=\]:"'\.\/]|^)(([\-\.\w]+@[\.\-\w]+(\.\w+)+))/ig, mode == 'html' ? '$1<a href="mailto:$2">$2</a>' : '$1[email]$2[/email]');
if(!parsecode) {
for(var i = 0; i <= codecount; i++) {
str = str.replace("[\tDISCUZ_CODE_" + i + "\t]", codehtml[i]);
}
}
return str;
}
function codetag(text) {
codecount++;
if(typeof wysiwyg != 'undefined' && wysiwyg) text = text.replace(/<br[^\>]*>/ig, '\n').replace(/<(\/|)[A-Za-z].*?>/ig, '');
codehtml[codecount] = '[code]' + text + '[/code]';
return '[\tDISCUZ_CODE_' + codecount + '\t]';
}
function seditor_insertunit(key, text, textend, moveend) {
$(key + 'message').focus();
textend = isUndefined(textend) ? '' : textend;
moveend = isUndefined(textend) ? 0 : moveend;
startlen = strlen(text);
endlen = strlen(textend);
if(!isUndefined($(key + 'message').selectionStart)) {
var opn = $(key + 'message').selectionStart + 0;
if(textend != '') {
text = text + $(key + 'message').value.substring($(key + 'message').selectionStart, $(key + 'message').selectionEnd) + textend;
}
$(key + 'message').value = $(key + 'message').value.substr(0, $(key + 'message').selectionStart) + text + $(key + 'message').value.substr($(key + 'message').selectionEnd);
if(!moveend) {
$(key + 'message').selectionStart = opn + strlen(text) - endlen;
$(key + 'message').selectionEnd = opn + strlen(text) - endlen;
}
} else if(document.selection && document.selection.createRange) {
var sel = document.selection.createRange();
if(textend != '') {
text = text + sel.text + textend;
}
sel.text = text.replace(/\r?\n/g, '\r\n');
if(!moveend) {
sel.moveStart('character', -endlen);
sel.moveEnd('character', -endlen);
}
sel.select();
} else {
$(key + 'message').value += text;
}
hideMenu();
}
function pmchecknew() {
ajaxget('pm.php?checknewpm=' + Math.random(), 'pm_ntc', 'ajaxwaitid');
}
function pmviewnew() {
if(!$('pm_ntc_menu')) {
var div = document.createElement("div");
div.id = 'pm_ntc_menu';
div.style.display = 'none';
$('append_parent').appendChild(div);
div.innerHTML = '<div id="pm_ntc_view"></div>';
}
showMenu('pm_ntc');
if($('pm_ntc_view').innerHTML == '') {
ajaxget('pm.php?action=viewnew', 'pm_ntc_view', 'ajaxwaitid');
}
}
function creditnoticewin() {
if(!(creditnoticedata = getcookie('discuz_creditnotice'))) {
return;
}
if(getcookie('discuz_creditnoticedisable')) {
return;
}
creditnoticearray = creditnoticedata.split('D');
if(creditnoticearray[9] != discuz_uid) {
return;
}
creditnames = creditnotice.split(',');
creditinfo = new Array();
for(i in creditnames) {
var e = creditnames[i].split('|');
creditinfo[e[0]] = [e[1], e[2]];
}
s = '';
for(i = 1;i <= 8;i++) {
if(creditnoticearray[i] != 0 && creditinfo[i]) {
s += '<span>' + creditinfo[i][0] + (creditnoticearray[i] > 0 ? '<em>+' : '<em class="desc">') + creditnoticearray[i] + '</em>' + creditinfo[i][1] + '</span>';
}
}
setcookie('discuz_creditnotice', '', -2592000);
if(s) {
noticewin(s, 2000, 1);
}
}
function noticewin(s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -