📄 common.js
字号:
this.stepv = -(this.step = this.pageheight * this.times / this.speed);
this.script = !script ? '' : script;
setTimeout('pagescroll.v()', 1);
}
this.down = function(times, script) {
if(!this.start(times)) return;
this.stepv = this.step = this.pageheight * this.times / this.speed;
this.script = !script ? '' : script;
setTimeout('pagescroll.v()', 1);
}
this.h = function() {
if(this.scrollpx <= this.pagewidth * this.times) {
this.scrollpx += Math.abs(this.stepv);
patch = this.scrollpx > this.pagewidth * this.times ? this.scrollpx - this.pagewidth * this.times : 0;
patch = patch > 0 && this.stepv < 0 ? -patch : patch;
oldscrollLeft = this.ctrlobj.scrollLeft;
this.ctrlobj.scrollLeft = this.ctrlobj.scrollLeft + this.stepv - patch;
if(oldscrollLeft != this.ctrlobj.scrollLeft) {
setTimeout('pagescroll.h()', 1);
return;
}
}
if(this.script) {
eval(this.script);
}
this.running = 0;
}
this.v = function() {
if(this.scrollpx <= this.pageheight * this.times) {
this.scrollpx += Math.abs(this.stepv);
patch = this.scrollpx > this.pageheight * this.times ? this.scrollpx - this.pageheight * this.times : 0;
patch = patch > 0 && this.stepv < 0 ? -patch : patch;
oldscrollTop = this.ctrlobj.scrollTop;
this.ctrlobj.scrollTop = this.ctrlobj.scrollTop + this.stepv - patch;
if(oldscrollTop != this.ctrlobj.scrollTop) {
setTimeout('pagescroll.v()', 1);
return;
}
}
if(this.script) {
eval(this.script);
}
this.running = 0;
}
this.init = function() {
this.ctrlobj.scrollLeft = this.defaultleft;
this.ctrlobj.scrollTop = this.defaulttop;
}
}
//LiSelect
var selectopen = null;
var hiddencheckstatus = 0;
function loadselect(id, showinput, pageobj, pos, method) {
var obj = $(id);
var objname = $(id).name;
var objoffset = fetchOffset(obj);
objoffset['width'] = is_ie ? (obj.offsetWidth ? obj.offsetWidth : parseInt(obj.currentStyle.width)) : obj.offsetWidth;
objoffset['height'] = is_ie ? (obj.offsetHeight ? obj.offsetHeight : parseInt(obj.currentStyle.height)) : obj.offsetHeight;
pageobj = !pageobj ? '' : pageobj;
showinput = !showinput ? 0 : showinput;
pos = !pos ? 0 : 1;
method = !method ? 0 : 1;
var maxlength = 0;
var defaultopt = '', defaultv = '';
var lis = '<ul onfocus="loadselect_keyinit(event, 1)" onblur="loadselect_keyinit(event, 2)" class="newselect" id="' + objname + '_selectmenu" style="' + (!pos ? 'z-index:999;position: absolute; width: ' + objoffset['width'] + 'px;' : '') + 'display: none">';
for(var i = 0;i < obj.options.length;i++){
lis += '<li ' + (obj.options[i].selected ? 'class="current" ' : '') + 'k_id="' + id + '" k_value="' + obj.options[i].value + '" onclick="loadselect_liset(\'' + objname + '\', ' + showinput + ', \'' + id + '\',' + (showinput ? 'this.innerHTML' : '\'' + obj.options[i].value + '\'') + ',this.innerHTML, ' + i + ')">' + obj.options[i].innerHTML + '</li>';
maxlength = obj.options[i].value.length > maxlength ? obj.options[i].value.length : maxlength;
if(obj.options[i].selected) {
defaultopt = obj.options[i].innerHTML;
defaultv = obj.options[i].value;
if($(objname)) {
$(objname).setAttribute('selecti', i);
}
}
}
lis += '</ul>';
if(showinput) {
inp = '<input autocomplete="off" class="newselect" id="' + objname + '_selectinput" onclick="loadselect_viewmenu(this, \'' + objname + '\', 0, \'' + pageobj + '\');doane(event)" onchange="loadselect_inputset(\'' + id + '\', this.value);loadselect_viewmenu(this, \'' + objname + '\', 0, \'' + pageobj + '\')" value="' + defaultopt + '" style="width: ' + objoffset['width'] + 'px;height: ' + objoffset['height'] + 'px;" tabindex="1" />';
} else {
inp = '<a href="javascript:;" hidefocus="true" class="loadselect" id="' + objname + '_selectinput"' + (!obj.disabled ? ' onfocus="loadselect_keyinit(event, 1)" onblur="loadselect_keyinit(event, 2)" onmouseover="this.focus()" onmouseout="this.blur()" onkeyup="loadselect_key(this, event, \'' + objname + '\', \'' + pageobj + '\')" onclick="loadselect_viewmenu(this, \'' + objname + '\', 0, \'' + pageobj + '\');doane(event)"' : '') + ' tabindex="1">' + defaultopt + '</a>';
}
obj.options.length = 0;
if(defaultopt) {
obj.options[0]= showinput ? new Option('', defaultopt) : new Option('', defaultv);
}
obj.style.width = objoffset['width'] + 'px';
obj.style.display = 'none';
if(!method) {
obj.outerHTML += inp + lis;
} else {
if(showinput) {
var inpobj = document.createElement("input");
} else {
var inpobj = document.createElement("a");
}
obj.parentNode.appendChild(inpobj);
inpobj.outerHTML = inp;
var lisobj = document.createElement("ul");
obj.parentNode.appendChild(lisobj);
lisobj.outerHTML = lis;
}
}
function loadselect_keyinit(e, a) {
if(a == 1) {
if(document.attachEvent) {
document.body.attachEvent('onkeydown', loadselect_keyhandle);
} else {
document.body.addEventListener('keydown', loadselect_keyhandle, false);
}
} else {
if(document.attachEvent) {
document.body.detachEvent('onkeydown', loadselect_keyhandle);
} else {
document.body.removeEventListener('keydown', loadselect_keyhandle, false);
}
}
}
function loadselect_keyhandle(e) {
e = is_ie ? event : e;
if(e.keyCode == 40 || e.keyCode == 38) doane(e);
}
function loadselect_key(ctrlobj, e, objname, pageobj) {
value = e.keyCode;
if(value == 40 || value == 38) {
if($(objname + '_selectmenu').style.display == 'none') {
loadselect_viewmenu(ctrlobj, objname, 0, pageobj);
} else {
lis = $(objname + '_selectmenu').getElementsByTagName('LI');
selecti = $(objname).getAttribute('selecti');
lis[selecti].className = '';
if(value == 40) {
selecti = parseInt(selecti) + 1;
} else if(value == 38) {
selecti = parseInt(selecti) - 1;
}
if(selecti < 0) {
selecti = lis.length - 1
} else if(selecti > lis.length - 1) {
selecti = 0;
}
lis[selecti].className = 'current';
$(objname).setAttribute('selecti', selecti);
lis[selecti].parentNode.scrollTop = lis[selecti].offsetTop;
}
} else if(value == 13) {
lis = $(objname + '_selectmenu').getElementsByTagName('LI');
for(i = 0;i < lis.length;i++) {
if(lis[i].className == 'current') {
loadselect_liset(objname, 0, lis[i].getAttribute('k_id'), lis[i].getAttribute('k_value'), lis[i].innerHTML, i);
break;
}
}
}
}
function loadselect_viewmenu(ctrlobj, objname, hidden, pageobj) {
if(!selectopen) {
if(document.attachEvent) {
document.body.attachEvent('onclick', loadselect_hiddencheck);
} else {
document.body.addEventListener('click', loadselect_hiddencheck, false);
}
}
var hidden = !hidden ? 0 : 1;
if($(objname + '_selectmenu').style.display == '' || hidden) {
$(objname + '_selectmenu').style.display = 'none';
} else {
if($(selectopen)) {
$(selectopen).style.display = 'none';
}
var objoffset = fetchOffset(ctrlobj);
if(pageobj) {
var InFloate = pageobj.split('_');
objoffset['left'] -= $(pageobj).scrollLeft + parseInt(floatwinhandle[InFloate[1] + '_1']);
objoffset['top'] -= $(pageobj).scrollTop + parseInt(floatwinhandle[InFloate[1] + '_2']);
}
objoffset['height'] = ctrlobj.offsetHeight;
$(objname + '_selectmenu').style.display = '';
selectopen = objname + '_selectmenu';
}
hiddencheckstatus = 1;
}
function loadselect_hiddencheck() {
if(hiddencheckstatus) {
if($(selectopen)) {
$(selectopen).style.display = 'none';
}
hiddencheckstatus = 0;
}
}
function loadselect_liset(objname, showinput, obj, v, opt, selecti) {
var change = 1;
if(showinput) {
if($(objname + '_selectinput').value != opt) {
$(objname + '_selectinput').value = opt;
} else {
change = 0;
}
} else {
if($(objname + '_selectinput').innerHTML != opt) {
$(objname + '_selectinput').innerHTML = opt;
} else {
change = 0;
}
}
lis = $(objname + '_selectmenu').getElementsByTagName('LI');
lis[$(objname).getAttribute('selecti')].className = '';
lis[selecti].className = 'current';
$(objname).setAttribute('selecti', selecti);
$(objname + '_selectmenu').style.display='none';
if(change) {
obj = $(obj);
obj.options.length=0;
obj.options[0]=new Option('', v);
eval(obj.getAttribute('change'));
}
}
function loadselect_inputset(obj, v) {
obj = $(obj);
obj.options.length=0;
obj.options[0]=new Option('', v);
eval(obj.getAttribute('change'));
}
//DetectCapsLock
var detectobj;
function detectcapslock(e, obj) {
detectobj = obj;
valueCapsLock = e.keyCode ? e.keyCode : e.which;
valueShift = e.shiftKey ? e.shiftKey : (valueCapsLock == 16 ? true : false);
detectobj.className = (valueCapsLock >= 65 && valueCapsLock <= 90 && !valueShift || valueCapsLock >= 97 && valueCapsLock <= 122 && valueShift) ? 'capslock txt' : 'txt';
if(is_ie) {
event.srcElement.onblur = detectcapslock_cleardetectobj;
} else {
e.target.onblur = detectcapslock_cleardetectobj;
}
}
function detectcapslock_cleardetectobj() {
detectobj.className = 'txt';
}
//FloatWin
var hiddenobj = new Array();
var floatwinhandle = new Array();
var floatscripthandle = new Array();
var floattabs = new Array();
var floatwins = new Array();
var InFloat = '';
var floatwinreset = 0;
var floatwinopened = 0;
function floatwin(action, script, w, h, scrollpos) {
var floatonly = !floatonly ? 0 : 1;
var actione = action.split('_');
action = actione[0];
if((!allowfloatwin || allowfloatwin == 0) && action == 'open' && in_array(actione[1], ['register','login','newthread','reply','edit']) && w >= 600) {
location.href = script;
return;
}
var handlekey = actione[1];
var layerid = 'floatwin_' + handlekey;
if(is_ie) {
var objs = $('wrap').getElementsByTagName("OBJECT");
} else {
var objs = $('wrap').getElementsByTagName("EMBED");
}
if(action == 'open') {
loadcss('float');
floatwinhandle[handlekey + '_0'] = layerid;
if(!floatwinopened) {
$('wrap').onkeydown = floatwin_wrapkeyhandle;
for(i = 0;i < objs.length; i ++) {
if(objs[i].style.visibility != 'hidden') {
objs[i].setAttribute("oldvisibility", objs[i].style.visibility);
objs[i].style.visibility = 'hidden';
}
}
}
scrollpos = !scrollpos ? '' : 'floatwin_scroll(\'' + scrollpos + '\');';
var clientWidth = document.body.clientWidth;
var clientHeight = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
var scrollTop = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
if(script && script != -1) {
if(script.lastIndexOf('/') != -1) {
script = script.substr(script.lastIndexOf('/') + 1);
}
var scriptfile = script.split('?');
scriptfile = scriptfile[0];
if(floatwinreset || floatscripthandle[scriptfile] && floatscripthandle[scriptfile][0] != script) {
if(!isUndefined(floatscripthandle[scriptfile])) {
$('append_parent').removeChild($(floatscripthandle[scriptfile][1]));
$('append_parent').removeChild($(floatscripthandle[scriptfile][1] + '_mask'));
}
floatwinreset = 0;
}
floatscripthandle[scriptfile] = [script, layerid];
}
if(!$(layerid)) {
floattabs[layerid] = new Array();
div = document.createElement('div');
div.className = 'floatwin';
div.id = layerid;
div.style.width = w + 'px';
div.style.height = h + 'px';
div.style.left = floatwinhandle[handlekey + '_1'] = ((clientWidth - w) / 2) + 'px';
div.style.position = 'absolute';
div.style.zIndex = '999';
div.onkeydown = floatwin_keyhandle;
$('append_parent').appendChild(div);
$(layerid).style.display = '';
$(layerid).style.top = floatwinhandle[handlekey + '_2'] = ((clientHeight - h) / 2 + scrollTop) + 'px';
$(layerid).innerHTML = '<div><h3 class="float_ctrl"><em><img src="' + IMGDIR + '/loading.gif"> 加载中...</em><span><a href="javascript:;" class="float_close" onclick="floatwinreset = 1;floatwin(\'close_' + handlekey + '\');"> </a></span></h3></div>';
divmask = document.createElement('div');
divmask.className = 'floatwinmask';
divmask.id = layerid + '_mask';
divmask.style.width = (parseInt($(layerid).style.width) + 14) + 'px';
divmask.style.height = (parseInt($(layerid).style.height) + 14) + 'px';
divmask.style.left = (parseInt($(layerid).style.left) - 6) + 'px';
divmask.style.top = (parseInt($(layerid).style.top) - 6) + 'px';
divmask.style.position = 'absolute';
divmask.style.zIndex = '998';
divmask.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=90,finishOpacity=100,style=0)';
divmask.style.opacity = 0.9;
$('append_parent').appendChild(divmask);
if(script && script != -1) {
script += (script.search(/\?/) > 0 ? '&' : '?') + 'infloat=yes&handlekey=' + handlekey;
try {
ajaxget(script, layerid, '', '', '', scrollpos);
} catch(e) {
setTimeout("ajaxget('" + script + "', '" + layerid + "', '', '', '', '" + scrollpos + "')", 1000);
}
} else if(script == -1) {
$(layerid).innerHTML = '<div><h3 class="float_ctrl"><em id="' + layerid + '_title"></em><span><a href="javascript:;" class="float_close" onclick="floatwinreset = 1;floatwin(\'close_' + handlekey + '\');"> </a></span></h3></div><div id="' + layerid + '_content"></div>';
$(layerid).style.zIndex = '1099';
$(layerid + '_mask').style.zIndex = '1098';
}
} else {
$(layerid).style.width = w + 'px';
$(layerid).style.height = h + 'px';
$(layerid).style.display = '';
$(layerid).style.top = floatwinhandle[handlekey + '_2'] = ((clientHeight - h) / 2 + scrollTop) + 'px';
$(layerid + '_mask').style.width = (parseInt($(layerid).style.width) + 14) + 'px';
$(layerid + '_mask').style.height = (parseInt($(layerid).style.height) + 14) + 'px';
$(layerid + '_mask').style.display = '';
$(layerid + '_mask').style.top = (parseInt($(layerid).style.top) - 6) + 'px';
}
floatwins[floatwinopened] = handlekey;
floatwinopened++;
} else if(action == 'close' && floatwinhandle[handlekey + '_0']) {
floatwinopened--;
for(i = 0;i < floatwins.length; i++) {
if(handlekey == floatwins[i]) {
floatwins[i] = null;
}
}
if(!floatwinopened) {
for(i = 0;i < objs.length; i ++) {
if(objs[i].attributes['oldvisibility']) {
objs[i].style.visibility = objs[i].attributes['oldvisibility'].nodeValue;
objs[i].removeAttribute('oldvisibility');
}
}
$('wrap').onkeydown = null;
}
hiddenobj = new Array();
$(layerid + '_mask').style.display = 'none';
$(layerid).style.display = 'none';
} else if(action == 'size' && floatwinhandle[handlekey + '_0']) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -