📄 spmenu.js
字号:
oCell = document.createElement('TD');
oCell.id = 'up' + oMenu.id.substring(3);
oCell.colSpan = 3;
oCell.align = 'center';
oCell.style.backgroundColor = 'gray'; //can be overridden by MenuScroll style
oCell.innerHTML='<div id="up' + oMenu.id.substr(3) + '" onclick="return spm_ScrollMenuClick(this, event);" onmouseover="spm_ScrollMenuMO(this, m_oSolpartMenu[\'' + me._m_sNSpace + '\']);" onmouseout="spm_ScrollMenuMOUT(m_oSolpartMenu[\'' + me._m_sNSpace + '\']);" class="' + spm_fixCSSForMac(me.getIntCSSName('spmitmscr')) + ' ' + me.cssMenuScrollItem + '" style="width: 100%; font-size: 6pt;">...</div>';
oRow.style.display = 'none';
oRow.appendChild(oCell);
}
if (oMenu.ScrollRowHeight == null)
{
spm_getTags('tr', oTbl)[0].style.display = '';
oMenu.ScrollItemHeight = (spm_getElementHeight(spm_getTags('tr', oTbl)[0]) * 2);
spm_getTags('tr', oTbl)[0].style.display = 'none';
oMenu.ScrollRowHeight = spm_getElementHeight(spm_getTags('tr', oTbl)[1]);
}
oMenu.scrollItems = parseInt((spm_getViewPortHeight() - spm_elementTop(oMenu) + spm_getBodyScrollTop() - oMenu.ScrollItemHeight) / (oMenu.ScrollRowHeight + 1));
spm_showScrolledItems(oMenu);
}
function spm_ScrollMenuMO(e, me)
{
me._m_dHideTimer = null;
me._m_oScrollingMenu = e;
if (Number(me.moScroll))
setTimeout('m_oSolpartMenu["' + me._m_sNSpace + '"].scrollMenu()', 500);
}
function spm_ScrollMenuMOUT(me)
{
me._m_oScrollingMenu = null;
me._m_dHideTimer = new Date();
if (me.moutDelay != 0)
setTimeout('m_oSolpartMenu["' + me._m_sNSpace + '"].hideMenuTime()', me.moutDelay);
}
function spm_ScrollMenuClick(e, evt)
{
if (e != null)
{
var oCell = e.parentNode;
var oTbl = oCell.parentNode.parentNode.parentNode;
var oMenu = oTbl.parentNode;
if (oCell.id == 'up' + oMenu.id.substring(3))
{
if (oMenu.scrollPos > 1)
oMenu.scrollPos--;
else
return true;
}
else
{
if (oMenu.scrollPos + oMenu.scrollItems < oTbl.rows.length - 1)
oMenu.scrollPos++;
else
return true;
}
spm_showScrolledItems(oMenu);
if (evt != null)
spm_stopEventBubbling(evt);
}
return false;
}
function spm_showScrolledItems(oMenu)
{
var oTbl = spm_getTags('table', oMenu)[0];
var oRows = spm_getTags('tr', oTbl); //oTbl.rows.length
for (var i=1; i < oRows.length; i++)
{
//if row is not within display "window" then don't display it
if (i < oMenu.scrollPos || i >= oMenu.scrollPos + oMenu.scrollItems)
oRows[i].style.display = 'none';
else
oRows[i].style.display = '';
}
// if we are scrolled down at least one then display up scroll item
if (oMenu.scrollPos > 1)
oRows[0].style.display = '';
else
oRows[0].style.display = 'none';
// if there is at least one item not displayed then show down item
if (oMenu.scrollPos + oMenu.scrollItems < oTbl.rows.length - 1)
oRows[oRows.length-1].style.display = '';
else
oRows[oRows.length-1].style.display = 'none';
}
function spm_insertTableRow(tbl, iPos)
{
var oRow;
var oTB;
oRow = document.createElement('TR');
if (tbl.getElementsByTagName('TBODY').length == 0)
{
oTB = document.createElement('TBODY');
tbl.appendChild(oTB);
}
else
oTB = tbl.getElementsByTagName('TBODY')[0];
if (iPos == null)
oTB.appendChild(oRow);
else
oTB.insertBefore(oRow, tbl.rows[iPos]);
return oRow;
}
function spm_getElementHeight(o)
{
if (o.offsetHeight == null || o.offsetHeight == 0)
{
if (o.offsetParent.offsetHeight == null || o.offsetParent.offsetHeight == 0)
{
if (o.offsetParent.offsetParent != null)
return o.offsetParent.offsetParent.offsetHeight; //needed for Konqueror
else
return 0;
}
else
return o.offsetParent.offsetHeight;
}
else
return o.offsetHeight;
}
function spm_getElementWidth(o)
{
if (o.offsetWidth == null || o.offsetWidth == 0)
{
if (o.offsetParent.offsetWidth == null || o.offsetParent.offsetWidth == 0)
{
if (o.offsetParent.offsetParent != null)
return o.offsetParent.offsetParent.offsetWidth; //needed for Konqueror
else
return 0;
}
else
return o.offsetParent.offsetWidth
}
else
return o.offsetWidth;
}
//viewport logic taken from http://dhtmlkitchen.com/js/measurements/index.jsp
function spm_getViewPortWidth()
{
// supported in Mozilla, Opera, and Safari
if(window.innerWidth)
return window.innerWidth;
// supported in standards mode of IE, but not in any other mode
if(window.document.documentElement.clientWidth)
return document.documentElement.clientWidth;
// supported in quirks mode, older versions of IE, and mac IE (anything else).
return window.document.body.clientWidth;
}
function spm_getBodyScrollTop()
{
if (window.pageYOffset)
return window.pageYOffset;
var oBody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
return oBody.scrollTop;
}
function spm_getBodyScrollLeft(bOverride)
{
if (window.pageXOffset)
return window.pageXOffset;
var oBody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
return oBody.scrollLeft;
}
function spm_getViewPortHeight()
{
// supported in Mozilla, Opera, and Safari
if(window.innerHeight)
return window.innerHeight;
// supported in standards mode of IE, but not in any other mode
if(window.document.documentElement.clientHeight)
return document.documentElement.clientHeight;
// supported in quirks mode, older versions of IE, and mac IE (anything else).
return window.document.body.clientHeight;
}
function spm_elementTop(eSrc, includeBody)
{
var iTop = 0;
var eParent;
eParent = eSrc;
while (eParent.tagName.toUpperCase() != "BODY")
{
//Safari incorrectly calculates the TR tag to be at the top of the table, so try and get child TD tag to use for measurement
//if (spm_browserType() == 'safari' && eParent.tagName.toUpperCase() == 'TR' && spm_getTags('TD', eParent).length)
// eParent = spm_getTags('TD', eParent)[0];
iTop += eParent.offsetTop;
eParent = eParent.offsetParent;
if (eParent == null)
break;
}
if (includeBody != null && eParent != null && (spm_browserType() == 'safari' || spm_browserType() == 'kq'))
iTop += eParent.offsetTop;
return iTop;
}
function spm_elementLeft(eSrc, includeBody)
{
var iLeft = 0;
var eParent;
eParent = eSrc;
while (eParent.tagName.toUpperCase() != "BODY")
{
iLeft += eParent.offsetLeft;
eParent = eParent.offsetParent;
if (eParent == null)
break;
}
if (includeBody != null && eParent != null && (spm_browserType() == 'safari' || spm_browserType() == 'kq'))
iLeft += eParent.offsetLeft;
return iLeft;
}
function spm_getElement(e, sID)
{
var o=e;
var i=0;
while (o.id != sID)
{
o=o.parentNode;
i++;
}
return o;
}
function spm_getSourceTR(e, ns)
{
while (e.id == "")
{
e= e.parentElement;
}
if (e.id.indexOf("arrow") != -1)
{
var sID = e.id.substr(5);
return spm_getById("tr" + sID);
}
else if (e.id.indexOf("td") != -1)
{
var sID = e.id.substr(2);
return spm_getById("tr" + sID);
}
else if (e.id.indexOf("icon") != -1)
{
var sID = e.id.substr(4);
return spm_getById("tr" + sID);
}
else if (e.id.indexOf("img") != -1)
{
var sID = e.id.substr(3);
return spm_getById("tr" + sID);
}
else
{
return e;
}
}
function spm_itemHasChildren(sID, ns)
{
return spm_getById("tbl" + sID) != null;
}
function spm_getMenuItemStyle(sType, oNode)
{
return spm_getAttr(oNode, sType + "style", '');
}
function spm_getMenuItemCSS(oNode)
{
return spm_getAttr(oNode, "css", '');
}
function spm_getMenuItemSelCSS(oNode)
{
return spm_getAttr(oNode, "selcss", '');
}
SolpartMenu.prototype.getIntCSSName = function(sClass)
{
var ary = sClass.split(' ');
var s='';
for (var i=0; i<ary.length; i++)
s += this._m_sNSpace.toLowerCase() + '_' + ary[i] + ' ';
return s;
}
function spm_fixCSSForMac(s)
{
var ary = s.split(' ');
var sRet='';
for (var i=0; i<ary.length; i++)
{
if (ary[i].rtrim().length > 0)
{
if (sRet.length)
sRet += ' ' + ary[i];
else
sRet = ary[i];
}
}
return sRet;
}
function spm_getMenuClickAction(oNode, me)
{
//'function to determine if menu item has action associated (URL)
var sName = spm_getAttr(me._m_oMenu, 'name', me._m_oMenu.name);
if (sName == null || sName.length == 0) //opera fix for getting name
sName = spm_getAttr(me._m_oMenu, 'pbname', me._m_oMenu.pbname);
if (spm_getAttr(oNode, "runat", '').length)
return "__doPostBack('" + sName + "', '" + spm_getAttr(oNode, "id", "") + "');";
if (spm_getAttr(oNode, "server", '').length)
return "__doPostBack('" + sName + "', '" + spm_getAttr(oNode, "id", "") + "');";
var sURL = spm_getAttr(oNode, "url", "");
if (sURL.length)
{
if (sURL.toLowerCase().substr(0, "javascript:".length) == "javascript:")
return sURL.substr("javascript:".length) + ";";
else
{
if (me.target.length > 0 && document.frames[me.target] != null)
return "document.frames['" + me.target + "'].location.href='" + sURL + "';";
else
return "document.location.href='" + sURL + "';";
}
}
return '';
}
function spm_getMenuSpacingImage(sPos, me)
{
var sAlign = me.menuAlignment.toLowerCase();
if ((sPos == 'left' && sAlign == 'right') || (sPos == 'right' && sAlign == 'left'))
return " <td width=\"100%\">" + spm_getSpacer(me) + "</td>";
if ((sPos == 'right' && sAlign == 'left') || (sPos == 'left' && sAlign == 'right'))
return " <td width=\"3px\">" + spm_getSpacer(me) + "</td>";
if (sAlign == 'Center')
return " <td width=\"33%\">" + spm_getSpacer(me) + "</td>";
return '';
}
function spm_getSpacer(me)
{
return spm_getMenuImage('spacer.gif', me, false, ' ');
//return ' '; //"<IMG SRC=\"" + me.systemImagesPath + "spacer.gif\">";
}
function spm_getImage(oAttr, me)
{
//'retrieves an image for a passed in XMLAttribute
var sImage = spm_getAttr(oAttr, 'image', '');
if (sImage.length)
{
return spm_getHTMLImage(sImage, spm_getAttr(oAttr, 'imagepath', me.iconImagesPath), null, spm_getAttr(oAttr, 'title', ''));
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -