📄 deeptree.js
字号:
var sHref = String( objA.href );
var sQuery = "";
var sHash = "";
if( "undefined" != sHref )
{
sTmpArray = sHref.split( "#" );
if( sTmpArray.length > 1 )
{
sHref = sTmpArray[0];
sHash = sTmpArray[1];
}
sTmpArray = sHref.split( "?" );
sHref = sTmpArray[0];
for( var i = 1; i < sTmpArray.length; i++ )
{
sQuery += "?" + sTmpArray[i];
}
if( sQuery.indexOf( "frame=" ) == -1 && objA.target == oConfig.sTarget )
{
sQuery = sQuery.length > 0 ? sQuery + "&frame=true" : "?frame=true";
}
else
{
sQuery = sQuery.length > 0 ? sQuery : "";
}
sHash = sHash.length > 0 ? "#" + sHash : "";
}
var sLocation = sHref + sQuery + sHash;
// 下面处理多模版参数问题,
if (sLocation.indexOf('?')>0)
{
sLocation = sLocation + '&csdnstyle='+csdnstyle;
}
else
{
sLocation = sLocation + '?csdnstyle='+csdnstyle;
}
// 处理多模版参数结束;
// if( objA.target )
// {
//
// window.open( sLocation , objA.target );
// }
// else
// {
parent.clientFrame.location = sLocation;
// }
}
}
}
//-----------------------------------------------
// LoadConfig()
//-----------------------------------------------
function Config()
{
var strCfgXMLSrc = "";
var sPath = "";
strCfgXMLSrc = element.CfgXMLSrc;
if (strCfgXMLSrc != "")
{
var objXMLDoc = new ActiveXObject("Microsoft.XMLDOM");
objXMLDoc.async = false;
objXMLDoc.load( strCfgXMLSrc );
if (objXMLDoc.xml != "")
{
var oTopXmlSrc = objXMLDoc.documentElement.selectSingleNode("//TopXMLSrc");
if ( null != oTopXmlSrc )
{
this.sTopXmlSrc = String( oTopXmlSrc.text );
}
else
{
// Error: Invalid TopXMLSrc in Config.xml
}
var oTarget = objXMLDoc.documentElement.selectSingleNode("//ContentTarget");
if ( null != oTarget )
{
this.sTarget = oTarget.text;
}
else
{
//Error: Invalid Target in Config.xml
}
}
}
}
//-----------------------------------------------
// LoadChildren(objLI)
// 登陆子结点
//-----------------------------------------------
function LoadChildren( objLI , oSync )
{
var strXMLSrc = "";
var strHTML = "";
var objSPAN;
var objUL;
objUL = GetHtmlElement(objLI,"DIV","container");
if (objUL != null)
{
objSPAN = GetHtmlElement(objLI,"SPAN","label")
if ( objUL.children.length == 0 )
{
objUL.innerHTML = m_sTempNodeStart + m_sLoadingText + m_sTempNodeEnd;
if (objSPAN != null)
{
strXMLSrc += strRootPath + objSPAN.xmlsrc;
GetXML( strXMLSrc , objUL , "shown" , oSync );
// Indicate that an asyncronous load is taking place
return true;
}
}
else if( null != oSync )
{
SyncAsync( oSync );
}
}
return false;
}
//-------------------------------------------------------------------------------------------------
// GET FUNCTIONS
//-------------------------------------------------------------------------------------------------
//-----------------------------------------------
// GetHtmlElement(objParent,strChildTagName)
//-----------------------------------------------
function GetHtmlElement(objParent,strChildTagName,strType)
{
var i = 0;
var objRetVal = null;
var oChildren = null;
if( null != objParent )
{
oChildren = objParent.children;
}
for (i = 0; oChildren != null && i < oChildren.length; i++)
{
if (oChildren[i].tagName.toUpperCase() == strChildTagName.toUpperCase() && ( oChildren[i].type == strType || strType == null ) )
{
objRetVal = oChildren[i];
break;
}
}
return objRetVal;
}
//-----------------------------------------------
// GetNextSibling(objLI)
//-----------------------------------------------
function GetNextSibling(objLI)
{
var i = 0;
var arySiblings;
var objRetVal = null;
arySiblings = GetSiblings(objLI);
if (arySiblings != null)
{
for (i = 0; i < arySiblings.length; i++)
{
if ((arySiblings[i] == objLI) && (i < (arySiblings.length - 1)))
{
objRetVal = arySiblings[i+1];
break;
}
}
}
return objRetVal;
}
//-----------------------------------------------
// GetPreviousSibling(objLI)
//-----------------------------------------------
function GetPreviousSibling(objLI)
{
var j = 0;
var arySiblings;
var objRetVal = null;
arySiblings = GetSiblings(objLI);
if (arySiblings != null)
{
for (j = 0; j < arySiblings.length; j++)
{
if (arySiblings[j] == objLI && j > 0)
{
objRetVal = arySiblings[j-1];
break;
}
}
}
return objRetVal;
}
//-----------------------------------------------
// GetFirstChild(objLI)
//-----------------------------------------------
function GetFirstChild(objLI)
{
var aryChildren;
var objRetVal = null;
aryChildren = GetChildren(objLI);
objRetVal = aryChildren[0];
return objRetVal;
}
//-----------------------------------------------
// GetLastChild(objLI)
//-----------------------------------------------
function GetLastChild(objLI)
{
var aryChildren;
var objRetVal = null;
aryChildren = GetChildren(objLI);
objRetVal = aryChildren[aryChildren.length-1];
return objRetVal;
}
//-----------------------------------------------
// GetParent(objLI)
// 得到这个结点的父结点
//-----------------------------------------------
function GetParent(objLI)
{
var objRetVal = null;
if( objLI != null && objLI.parentElement != null )
{
objRetVal = objLI.parentElement.parentElement;
}
if ( null != objRetVal && objRetVal.type != "parent" )
{
objRetVal = null;
}
return objRetVal;
}
//-----------------------------------------------
// GetSiblings(objLI)
//-----------------------------------------------
function GetSiblings(objLI)
{
var objUL;
var aryRetVal = null;
objUL = objLI.parentElement;
if ( objUL != null && objUL.type == "container" )
{
aryRetVal = objUL.children
}
return aryRetVal;
}
//-----------------------------------------------
// GetChildren(objLI)
//-----------------------------------------------
function GetChildren(objLI)
{
var objUL;
var aryRetVal = null;
objUL = GetHtmlElement( objLI , "DIV" , "container" );
if( null != objUL )
{
aryRetVal = objUL.children;
}
return aryRetVal;
}
//-----------------------------------------------
// IsChild(objLI_Child, objLI_Parent)
//-----------------------------------------------
function IsChild(objLI_Child, objLI_Parent)
{
var objLI_Temp;
var blnRetVal = false;
objLI_Temp = GetParent(objLI_Child);
while (objLI_Temp != null)
{
if (objLI_Temp == objLI_Parent)
{
blnRetVal = true;
break;
}
objLI_Temp = GetParent(objLI_Temp);
}
return blnRetVal;
}
//-------------------------------------------------------------------------------------------------
// ASYNCRONOUS LOAD HANDLERS
//-------------------------------------------------------------------------------------------------
function fnAllocCall()
{
var iReturn = null;
for (var i = 0; i < m_iMaxCalls && m_aoCalls[m_iLastCall] != null; i++)
{
m_iLastCall = (m_iLastCall + 1) % m_iMaxCalls;
}
if (i < m_iMaxCalls)
{
iReturn = m_iLastCall;
}
return iReturn;
}
function fnDeAllocCall( iCallIdx )
{
m_aoCalls[iCallIdx] = null;
}
function CallObject( oXml , oEl , sElClass , oSync )
{
this.oXml = oXml;
this.oSync = oSync;
this.oEl = oEl;
this.sElClass = sElClass;
}
function fnLoadComplete( iIndex )
{
if( iIndex == null ) return;
var oCall = m_aoCalls[ iIndex ];
try
{
var iReadyState = oCall.oXml.readyState;
}
catch(e)
{
return;
}
if( iReadyState != 4 ) return;
if( oCall != null && oCall.oXml.xml != "" )
{
aryXMLNodes = oCall.oXml.documentElement.selectNodes("//TreeRef[@NodeXmlSrc]");
for (i = 0; i < aryXMLNodes.length; i++)
{
var objXMLDoc_Child = new ActiveXObject("Microsoft.XMLDOM");
objXMLDoc_Child.async = false;
objXMLDoc_Child.load(strRootPath + aryXMLNodes[i].getAttribute("NodeXmlSrc"));
if( null != objXMLDoc_Child.documentElement )
{
aryXMLNodes[i].parentNode.replaceChild(objXMLDoc_Child.documentElement, aryXMLNodes[i]);
}
objXMLDoc_Child = null;
}
bFixLoad = oCall.oEl.contains( objLI_Current );
if (objXSLDoc.xml != "")
{
var sHtml = oCall.oXml.transformNode( objXSLDoc );
}
if ( sHtml != null && sHtml != "" )
{
oCall.oEl.innerHTML = sHtml;
oCall.oEl.className = oCall.sElClass;
}
else
{
oCall.oEl.innerHTML = m_sTempNodeStart + m_sUnavailableText + m_sTempNodeEnd;
}
/*
//if( bFixLoad )
//{
// SelectNode( oCall.oEl.children[0] );
//}
if( iIndex == m_iMasterIdx && m_bSyncFailed == true )
{
Sync();
}
if( oCall.oSync != null )
{
SyncAsync( oCall.oSync );
}
*/
if( null != objLI_Current && objLI_Current.selectChild ) MoveNext();
fnDeAllocCall( iIndex );
}
else
{
oCall.oEl.innerHTML = m_sTempNodeStart + m_sUnavailableText + m_sTempNodeEnd;
}
/* try{
parent.listFrame.document.all.messageDiv.style.display="none";
}
catch(e){
}
*/
return;
}
</script>
</public:component>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -