📄 collapsebarscript.js
字号:
function CommunityServer_CollapseBar_Init( appPath ) {
if ( !CommunityServer_CollapseBar_UplevelBrowser() ) { return; }
window.CommunityServer_CollapseBar_AppPath = appPath;
for( var i=0; i < CommunityServer_CollapseBars.length; i++ ) {
var barInfo = CommunityServer_CollapseBars[i];
barInfo.ItemCount = parseInt( barInfo.ItemCount );
barInfo.InitialSelectedIndex = parseInt( barInfo.InitialSelectedIndex );
CommunityServer_CollapseBar_Load( barInfo );
}
}
function CommunityServer_CollapseBar_UplevelBrowser() {
if ( typeof( CommunityServer_CollapseBars ) == "undefined" ) return false;
if ( !document.getElementById ) return false;
if ( !document.getElementsByTagName ) return false;
return true;
}
function CommunityServer_CollapseBar_Load( barInfo ) {
var bar = document.getElementById( barInfo.ID );
if ( bar == null ) { return; }
bar.Items = new Array();
bar.IndexOf = CommunityServer_CollapseBar_IndexOfItem;
bar.CurrentItemTracker = CommunityServer_CollapseBar_GetHiddenElement( barInfo.HiddenID );
bar.CurrentItemTracker.value = barInfo.InitialSelectedIndex;
bar.CookieID = barInfo.ID;
bar.SetCookie = CommunityServer_CollapseBar_SetCookie;
bar.ClearSelection = CommunityServer_CollapseBar_ClearSelection;
bar.AddItem = CommunityServer_CollapseBar_AddItem;
var nestedDivs = bar.getElementsByTagName( "DIV" );
var childDivs = new Array();
for( var i = 0; i < nestedDivs.length; i++ ) {
if ( nestedDivs[ i ].parentElement == bar ) {
childDivs[ childDivs.length ] = nestedDivs[ i ];
}
}
if ( childDivs.length == barInfo.ItemCount * 2 ) {
for ( var i = 0; i < childDivs.length / 2; i++ ) {
var itemButton = childDivs[ i ];
var itemBody = childDivs[ i + barInfo.ItemCount ];
bar.AddItem( itemBody, itemButton );
}
}
if ( bar.Items.length > 1 ) {
var selectedIndex = parseInt( bar.CurrentItemTracker.value );
var selectedItem = bar.Items[ selectedIndex ];
var nonSelectedItem;
if ( selectedIndex == 0 ) {
nonSelectedItem = bar.Items[ selectedIndex + 1 ];
} else {
nonSelectedItem = bar.Items[ 0 ];
}
if ( selectedItem.StylingElement.style.cssText ) {
bar.CurrentItemStyle = selectedItem.StylingElement.style.cssText;
bar.CurrentItemCssClass = selectedItem.StylingElement.className;
bar.ItemStyle = nonSelectedItem.StylingElement.style.cssText;
bar.ItemCssClass = nonSelectedItem.StylingElement.className;
} else {
bar.CurrentItemStyle = "";
bar.CurrentItemCssClass = "";
bar.ItemStyle = "";
bar.ItemCssClass = "";
}
}
}
function CommunityServer_CollapseBar_AddItem( itemBody, itemButton ) {
CommunityServer_CollapseBar_OverridePostbacks( itemButton );
this.Items[ this.Items.length ] = itemButton;
itemButton.Owner = this;
itemButton.BodyPanel = itemBody;
itemButton.StylingElement = itemButton;
itemButton.StylingElement.ApplyStyle = CommunityServer_CollapseBar_ApplyStyle;
itemButton.Select = CommunityServer_CollapseBar_Select;
itemButton.onclick = itemButton.Select;
}
function CommunityServer_CollapseBar_ClearSelection() {
for( var i=0; i < this.Items.length; i++ ) {
var child = this.Items[i];
child.StylingElement.ApplyStyle( this.ItemStyle );
child.StylingElement.className = this.ItemCssClass;
child.BodyPanel.style.display = "none";
}
this.CurrentItemTracker.value = -1;
this.SetCookie( "-1" );
}
function CommunityServer_CollapseBar_Select() {
this.Owner.ClearSelection();
this.StylingElement.ApplyStyle( this.Owner.CurrentItemStyle );
this.StylingElement.className = this.Owner.CurrentItemCssClass;
this.BodyPanel.style.display = "";
this.Owner.CurrentItemTracker.value = this.Owner.IndexOf( this );
this.Owner.SetCookie( this.Owner.CurrentItemTracker.value );
}
function CommunityServer_CollapseBar_GetHiddenElement( name ) {
for( var i = 0; i < document.forms.length; i++ ) {
var theForm = document.forms[ i ];
if ( theForm[ name ] != null ) {
return theForm[ name ];
}
}
return null;
}
function CommunityServer_CollapseBar_IndexOfItem( barItem ) {
for( var i=0; i < this.Items.length; i++ ) {
var item = this.Items[i];
if ( item == barItem ) {
return i;
}
}
return -1;
}
function CommunityServer_CollapseBar_OverridePostbacks( container ) {
container.onclick = function() { return false; };
var postBackControls;
postBackControls = container.getElementsByTagName( "A" );
if ( postBackControls != null ) {
for( var i = 0; i < postBackControls.length; i++ ) {
var postBackControl = postBackControls[ i ];
postBackControl.onclick = function() { return false; };
postBackControl.href = "";
}
}
}
function CommunityServer_CollapseBar_ApplyStyle( newStyle ) {
var isOpera = navigator.userAgent.toLowerCase().indexOf("opera") != -1;
if ( isOpera ) {
CommunityServer_CollapseBar_ClearStyle( this );
if ( newStyle.length == 0 ) { return; }
var nameValues = newStyle.split(";");
for ( var i = 0; i < nameValues.length; i++ ) {
var nameValue = nameValues[ i ].split( ":" );
var name = CommunityServer_CollapseBar_Trim( nameValue[ 0 ] );
var value = CommunityServer_CollapseBar_Trim( nameValue[ 1 ] );
if ( name.indexOf( "-" ) != -1 ) {
var namePieces = name.split( "-" );
if ( namePieces.length > 1 ) {
name = CommunityServer_CollapseBar_Trim( namePieces[ 0 ] ).toLowerCase();
for( var j = 1; j < namePieces.length; j++ ) {
var namePiece = CommunityServer_CollapseBar_Trim( namePieces[ j ] ).toLowerCase();
namePiece = namePiece.substring( 0, 1 ).toUpperCase() + namePiece.substring( 1, namePiece.length );
name += namePiece;
}
}
}
this.style[ name ] = value;
}
} else {
this.style.cssText = newStyle;
}
var childElements;
childElements = this.getElementsByTagName( "A" );
if ( childElements != null ) {
for( var i = 0; i < childElements.length; i++ ) {
var childElement = childElements[ i ];
childElement.style.color = this.style.color;
}
}
childElements = this.getElementsByTagName( "INPUT" );
if ( childElements != null ) {
for( var i = 0; i < childElements.length; i++ ) {
var childElement = childElements[ i ];
childElement.style.color = this.style.color;
childElement.style.backgroundColor = this.style.backgroundColor;
}
}
}
function CommunityServer_CollapseBar_ClearStyle( target ) {
var nameValues = target.style.cssText.split(";");
for ( var i = 0; i < nameValues.length; i++ ) {
var nameValue = nameValues[ i ].split( ":" );
var name = CommunityServer_CollapseBar_Trim( nameValue[ 0 ] );
var value = CommunityServer_CollapseBar_Trim( nameValue[ 1 ] );
if ( name.indexOf( "-" ) != -1 ) {
var namePieces = name.split( "-" );
if ( namePieces.length > 1 ) {
name = CommunityServer_CollapseBar_Trim( namePieces[ 0 ] ).toLowerCase();
for( var j = 1; j < namePieces.length; j++ ) {
var namePiece = CommunityServer_CollapseBar_Trim( namePieces[ j ] ).toLowerCase();
namePiece = namePiece.substring( 0, 1 ).toUpperCase() + namePiece.substring( 1, namePiece.length );
name += namePiece;
}
}
}
target.style[ name ] = "";
}
}
function CommunityServer_CollapseBar_Trim( s ) {
if ( s == null ) {
return "";
}
while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
s = s.substring(1,s.length);
}
while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
s = s.substring(0,s.length-1);
}
return s;
}
function CommunityServer_CollapseBar_SetCookie( value ) {
var name = "CollapseBar:" + this.CookieID;
document.cookie = name + "=" + escape( value ) +
( "; expires=" + ( new Date( ( new Date() ).getTime() + 30*24*60*60*1000) ).toGMTString() ) +
( "; path=" + window.CommunityServer_CollapseBar_AppPath );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -