📄 mpc.htc
字号:
<!-- ---------------------------------------------------------------------
//
// Copyright 2000 Microsoft Corporation. All Rights Reserved.
//
// File: mpc.htc
//
// Description: This behavior allows web authors to a tabbed dialog
// style control for grouping information on a page.
//
//
//-------------------------------------------------------------------- -->
<PROPERTY NAME="selectedIndex"/>
<PROPERTY NAME="CumulativeTabWidth"/>
<PROPERTY NAME="ContainerHeight"/>
<EVENT NAME="onchange" ID="change" />
<EVENT NAME="onfocus" ID="focus" />
<METHOD NAME="FireFocus"/>
<ATTACH EVENT="ondocumentready" HANDLER="DoInit" />
<SCRIPT LANGUAGE="jscript">
//+----------------------------------------------------------------------------
//
// Global Variables
//
//-----------------------------------------------------------------------------
var StyleInfo;
var StyleRules = new Array();
var iIndex = null;
//+----------------------------------------------------------------------------
//
// Function: DoInit
//
// Description: Calls functions, set variables, and attaches events to
// initialize behavior
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function DoInit()
{
//if container....
if(tagName=="container")
{
style.position = "absolute";
CumulativeTabWidth = -1;
if(selectedIndex==null) selectedIndex = 1;
SetDefaults();
ContainerHeight = style.posHeight;
}
//*************************************************************************
//*************************************************************************
//if page.....
if(tagName=="page")
{
var iIndex = null;
for(c=0; c<parentElement.children.length; c++)
{
if(element == parentElement.children(c)) iIndex = c + 1;
}
//create and insert the HTML that is the content area for the tab
MakeContent();
//determine the width of this tab, using a simple algorithm (fairly reliable,
//since the font family and size are restricted
var iWidth = 6*parseInt(TABTEXT.length);
//create and insert the HTML that is the tab
MakeTab(parentElement.CumulativeTabWidth+1, iWidth+6, TABTEXT, TABTITLE, iIndex);
//reset CumulativeTabWidth
parentElement.CumulativeTabWidth = parentElement.CumulativeTabWidth + iWidth + 18;
//create a stylesheet for the tab
CreatePageStyleSheet();
//determine which tab in the collection this one is. If last, do some configuring
var Tabs = window.document.all("Tab");
if(parentElement.children.length == 1)
{
SelectTab();
SelectContent();
SetTabTop();
ConfirmContainerWidth();
SetContainerHeight();
}
else
{
if(Tabs.length == parentElement.children.length)
{
SelectTab();
SelectContent();
SetTabTop();
ConfirmContainerWidth();
SetContainerHeight();
}
}
}
attachEvent("onpropertychange", DoPropChange);
}
//+----------------------------------------------------------------------------
//
// Function: MakeContent
//
// Description: Makes Content Area that holds content
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function MakeContent()
{
var sHTML = '<DIV onclick="window.event.cancelBubble = true" CLASS=DormantContent_' + uniqueID + '>' + innerHTML + '</DIV>';
innerHTML = "";
insertAdjacentHTML('BeforeEnd', sHTML);
}
//+----------------------------------------------------------------------------
//
// Function: MakeTab
//
// Description: Makes Tabs
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function MakeTab(iLeft, iWidth, sLabel, sTitle, iIndex)
{
var sTopDisplay = null;
var sBottomDisplay = null;
if(parentElement.style.tdTabOrientation.toUpperCase()=="TOP")
{
sTopDisplay = "inline";
sBottomDisplay = "none";
}
if(parentElement.style.tdTabOrientation.toUpperCase()=="BOTTOM")
{
sTopDisplay = "none";
sBottomDisplay = "inline";
}
var sHTML = "";
sHTML = sHTML + '<TABLE ID=Tab onclick="parentElement.parentElement.selectedIndex = this.index" CLASS=DormantTab_' + uniqueID + ' index=' + iIndex + ' CELLPADDING=0 CELLSPACING=0 STYLE="left:' + iLeft + '">';
sHTML = sHTML + '<TR STYLE="display:' + sTopDisplay + '">';
sHTML = sHTML + '<TD STYLE="width:1px; height:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR STYLE="display:' + sTopDisplay + '">';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + ' STYLE="height:1px"></TD>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + ' TITLE="' + sTitle + '" STYLE="font:9pt MS Sans Serif; width:' + iWidth + '; height:20px; padding-left:4px; padding-right:4px">' + sLabel + '</TD>';
sHTML = sHTML + '<TD CLASS=MediumShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR STYLE="display:' + sBottomDisplay + '">';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + ' STYLE="height:1px"></TD>';
sHTML = sHTML + '<TD CLASS=LightShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Tab_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '<TR STYLE="display:' + sBottomDisplay + '">';
sHTML = sHTML + '<TD STYLE="width:1px; height:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD CLASS=DarkShadow_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '<TD STYLE="width:1px" CLASS=Transparent_' + uniqueID + '></TD>';
sHTML = sHTML + '</TR>';
sHTML = sHTML + '</TABLE>';
insertAdjacentHTML('BeforeEnd', sHTML);
}
//+----------------------------------------------------------------------------
//
// Function: CreatePageStyleSheet
//
// Description:
//
// Arguments: none
//
// Returns: nothing
//
//+----------------------------------------------------------------------------
function CreatePageStyleSheet()
{
// Create Page StyleSheet page
element.document.body.MPCPageStyleSheet = element.document.createStyleSheet();
StyleInfo = element.document.body.MPCPageStyleSheet;
//get values of container background color and foreground color
var sForeColor = parentElement.style.color;
var sBackColor = parentElement.style.background;
//determine value of iTop for placement of tabs
var iTop = null;
if(parentElement.style.tdTabOrientation.toUpperCase() == "TOP") iTop = -22;
if(parentElement.style.tdTabOrientation.toUpperCase() == "BOTTOM") iTop = parentElement.style.posHeight - 2;
StyleInfo.addRule( '.Transparent_' + uniqueID, 'width:1px; height:1px; font-size:0px');
StyleRules['Transparent'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.LightShadow_' + uniqueID, 'background:white; font-size:0px');
StyleRules['LightShadow'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.MediumShadow_' + uniqueID, 'background:gray; font-size:0px');
StyleRules['MediumShadow'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.DarkShadow_' + uniqueID, 'background:black; font-size:0px');
StyleRules['DarkShadow'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.Tab_' + uniqueID, 'background:' + sBackColor + '; color:' + sForeColor);
StyleRules['Tab'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.DormantTab_' + uniqueID, 'position:absolute; z-index:2; cursor:default');
StyleRules['DormantTab'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.ActiveTab_' + uniqueID, 'position:absolute; z-index:4; cursor:default');
StyleRules['ActiveTab'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.DormantContent_' + uniqueID, 'position:absolute; visibility:hidden; top:0; left:0; background:silver');
StyleRules['DormantContent'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
StyleInfo.addRule( '.ActiveContent_' + uniqueID, 'position:absolute; height:100%; width:100%; border-left:solid 1 white; border-top:solid 1 white; border-bottom:solid 1 black; border-right:solid 1 black; background:' + sBackColor + '; z-index:3');
StyleRules['ActiveContent'] = StyleInfo.rules[StyleInfo.rules.length-1].style;
}
//+----------------------------------------------------------------------------
//
// Function: SetDefaults
//
// Description: Called during the initialization of the behavior. Sets
// the defaults for custom CSS properties (calls the
// CustomDefault() function), regular CSS properties (the
// NormalDefault() function), and attribute/properties.
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function SetDefaults()
{
if(tagName=="container")
{
CustomDefault('td--tab-orientation', 'tdTabOrientation', 'top');
NormalDefault('width', 'auto');
NormalDefault('height', 'auto');
NormalDefault('background', 'buttonface');
NormalDefault('color', 'buttontext');
}
}
//+----------------------------------------------------------------------------
//
// Function: CustomDefault
//
// Description: Sets the defaults for custom CSS properties and establishes
// a scriptable name for the property
//
// Arguments: sCSSName - the CSS name of the property
// sScriptName - the desired Scriptable name of the property
// sDefault - the desired default value
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function CustomDefault(sCSSName, sScriptName, sDefault)
{
if (currentStyle[sCSSName] == null)
{
style[sCSSName] = sDefault;
}
else style[sCSSName] = currentStyle[sCSSName];
style[sScriptName] = style[sCSSName];
}
//+----------------------------------------------------------------------------
//
// Function: NormalDefault
//
// Description: Sets the defaults for CSS properties by checking the
// currentStyle and style of the object against the IE
// default.
//
// Arguments: sCSSName - the CSS name of the property
// sIEDefault - the IE standard default of the property
// sDefault - the desired default of the property
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function NormalDefault(sCSSName, sDefault)
{
if (style[sCSSName] == "" || style[sCSSName] == null)
{
style[sCSSName] = sDefault;
}
}
//+----------------------------------------------------------------------------
//
// Function: SelectTab
//
// Description: Selects the selected tab
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function SelectTab()
{
var oContainer = null;
if(tagName=="container") oContainer = element;
if(tagName=="page") oContainer = parentElement;
//handle the possibility that selectedIndex is a string. Change it to an integer.
if(isNaN(parseInt(oContainer.selectedIndex)))
{
for(i=0; i<oContainer.children.length; i++)
{
if(oContainer.children(i).TABTEXT==oContainer.selectedIndex) oContainer.selectedIndex = i + 1;
}
if(isNaN(parseInt(oContainer.selectedIndex))) oContainer.selectedIndex = 1;
}
if(oContainer.selectedIndex > oContainer.children.length)
{
var TempClass = oContainer.children(0).children(1).className;
TempClass = "ActiveTab" + TempClass.substring(TempClass.indexOf("_"), TempClass.length);
oContainer.children(0).children(1).className = TempClass;
return;
}
var TempClass = oContainer.children(oContainer.selectedIndex-1).children(1).className;
TempClass = "ActiveTab" + TempClass.substring(TempClass.indexOf("_"), TempClass.length);
oContainer.children(oContainer.selectedIndex-1).children(1).className = TempClass;
}
//+----------------------------------------------------------------------------
//
// Function: DeselectTab
//
// Description: Deselects the selected tab
//
// Arguments: none
//
// Returns: nothing
//
//-----------------------------------------------------------------------------
function DeselectTab()
{
var oContainer = null;
if(tagName=="container") oContainer = element;
if(tagName=="page") oContainer = parentElement;
for(i=0; i<oContainer.children.length; i++)
{
var TempClass = oContainer.children(i).children(1).className;
TempClass = "DormantTab" + TempClass.substring(TempClass.indexOf("_"), TempClass.length);
oContainer.children(i).children(1).className = TempClass;
}
}
//+----------------------------------------------------------------------------
//
// Function: SelectContent
//
// Description: Selects the selected content page
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -