📄 xmlseltree.js
字号:
var oOldLabel ;
oNewLabel = GetChildElement(p_oSrcElement, "label") ;
if (m_oConfig.bChangeLeafImg)
{
var cType = p_oSrcElement.type;
if (cType == "leaf")
{
oImg = GetChildElement(p_oSrcElement, "img") ;
oImg.src = GetImgSrc(oImg.src,3) ; // 改变图标
}
if ( (m_oConfig.oCurrentNode != "moonpiazza") && (p_oSrcElement != m_oConfig.oCurrentNode) )
{
if (m_oConfig.oCurrentNode.type == "leaf")
{
oImg = GetChildElement(m_oConfig.oCurrentNode, "img") ;
oImg.src = GetImgSrc(oImg.src,0) ; // 改变图标
}
}
}
if (oNewLabel != null)
{
oNewLabel.className = m_oConfig.sClsCurrentFocus ;
oNewLabel.classType = m_oConfig.sClsCurrentFocus ;
if ( (m_oConfig.oCurrentNode != "moonpiazza") && (p_oSrcElement != m_oConfig.oCurrentNode) )
{
oOldLabel = GetChildElement(m_oConfig.oCurrentNode, "label") ;
if (oOldLabel != null)
{
oOldLabel.className = "" ;
oOldLabel.classType = "" ;
}
}
m_oConfig.oCurrentNode = p_oSrcElement ;
}
}
/************************************************
** UpdateMessages(p_oSrcElement)
************************************************/
function UpdateMessages(p_oSrcElement)
{
oLabel = GetChildElement(p_oSrcElement, "label") ;
if(oLabel != null)
{
window.defaultStatus = oLabel.caption ;
//top.document.title = oLabel.title ;
}
}
/************************************************
** LoadNodeContent(p_oSrcElement)
************************************************/
function LoadNodeContent(p_oSrcElement)
{
var oLabel ;
var oLink ;
oLabel = GetChildElement(p_oSrcElement, "label") ;
if (oLabel != null)
{
oLink = GetChildElement(oLabel, "link")
if (oLink != null)
{
var sHref = String(oLink.href) ;
//alert(oLink.innerHTML);
//alert(oLink.href);
var orgid = oLink.href.substring(oLink.href.indexOf('orgid=')+6, oLink.href.indexOf('&OrgCode='));
//alert(orgid);
if(oLink.target)
{
GoLink(sHref, oLink.target, orgid, oLink.innerHTML) ;
}
}
}
}
/************************************************
** ScrollIntoView(p_oSrcElement)
************************************************/
function ScrollIntoView(p_oSrcElement)
{
if (m_oConfig.bAutoScroll)
{
var nY = p_oSrcElement.offsetTop - (window.document.body.clientHeight / 2) ;
var nX = p_oSrcElement.offsetLeft - 15 ;
window.scrollTo(nX, nY) ;
}
}
//-------------------------------------------------------------------------------------------------
// 节点事件 (子孙节点数据读取、显示、隐藏)
//-------------------------------------------------------------------------------------------------
/************************************************
** FoldElseBranch(p_oSrcElement)
************************************************/
function FoldElseBranch(p_oSrcElement)
{
if (m_oConfig.oCurrentNode == p_oSrcElement)
{
return ;
}
if (m_oConfig.oCurrentNode != "moonpiazza")
{
var bIsAncestorNode = false;
var bIsOffspringNode = false;
bIsAncestorNode = IsAncestorNode(m_oConfig.oCurrentNode, p_oSrcElement) ;
if ( !bIsAncestorNode )
{
bIsOffspringNode = IsAncestorNode(p_oSrcElement, m_oConfig.oCurrentNode) ;
if ( !bIsOffspringNode )
{
FoldOffspringNode(p_oSrcElement.parentElement) ; // 隐藏子孙节点
FoldNode(m_oConfig.oCurrentNode) ; // 隐藏自身
FoldAncestorNode(p_oSrcElement, m_oConfig.oCurrentNode); // 隐藏祖先节点
}
}
}
}
/************************************************
** FoldOffspringNode(p_oSrcElement)
************************************************/
function FoldOffspringNode(p_oSrcElement)
{
var i = 0 ;
var oChildren ;
oChildren = p_oSrcElement.children ;
if (oChildren != null)
{
for (i=0; i < oChildren.length; i++)
{
FoldNode( oChildren[i] ) ;
if (oChildren[i].type == "branch")
{
var oContainerElement = GetChildElement(oChildren[i], "container") ;
FoldOffspringNode(oContainerElement) ;
}
}
}
}
/*************************************************************************
** FoldAncestorNode(p_oSrcElement, p_oTargetNode)
*************************************************************************/
function FoldAncestorNode(p_oSrcElement, p_oTargetNode)
{
var oSrcParentNode = GetParentElement(p_oSrcElement) ;
var oTargetNode = GetParentElement(p_oTargetNode) ;
while (oTargetNode != null)
{
if (oTargetNode == oSrcParentNode)
{
break ;
}
FoldNode(oTargetNode) ;
oTargetNode = GetParentElement(oTargetNode) ;
}
}
/************************************************
** ShowHideNode(p_oSrcElement)
************************************************/
function ShowHideNode(p_oSrcElement)
{
if (p_oSrcElement.state == "shown")
{
FoldNode(p_oSrcElement) ;
}
else
{
if (!m_oConfig.bShowElseBranch)
{
FoldElseBranch(p_oSrcElement) ;
}
OutspreadNode(p_oSrcElement) ;
}
}
/************************************************
** FoldNode(p_oSrcElement)
************************************************/
function FoldNode(p_oSrcElement)
{
var oContainerElement ;
var oImg ;
oContainerElement = GetChildElement(p_oSrcElement, "container") ;
if (oContainerElement != null)
{
oImg = GetChildElement(p_oSrcElement, "img") ;
p_oSrcElement.state = "hidden" ;
oContainerElement.className = "hide" ;
oImg.src = GetImgSrc(oImg.src,1) ; // 改变图标
if (IsAncestorNode(m_oConfig.oCurrentNode, p_oSrcElement)==true)
{
SelectNode(p_oSrcElement) ;
}
}
}
/************************************************
** IsAncestorNode(p_oSrcElement, p_oTargetNode)
************************************************/
function IsAncestorNode(p_oSrcElement, p_oTargetNode)
{
var oTmpElement ;
var bReturnValue = false ;
oTmpElement = GetParentElement(p_oSrcElement) ;
while (oTmpElement != null)
{
if (oTmpElement == p_oTargetNode)
{
bReturnValue = true ;
break ;
}
oTmpElement = GetParentElement(oTmpElement) ;
}
return bReturnValue ;
}
/************************************************
** OutspreadNode(p_oSrcElement)
************************************************/
function OutspreadNode(p_oSrcElement)
{
var oContainerElement ;
var oImg ;
var oLabel ;
oContainerElement = GetChildElement(p_oSrcElement, "container") ;
if (oContainerElement != null)
{
oImg = GetChildElement(p_oSrcElement, "img") ;
if (oImg != null)
{
p_oSrcElement.state = "shown" ;
oContainerElement.className = "shown" ;
oImg.src = GetImgSrc(oImg.src,2) ; // 改变图标
if (!m_oConfig.bDataAsync)
{
var i;
var oDivContainer = oContainerElement.getElementsByTagName("Div") ;
var nLen = oDivContainer.length;
for (i=0; i<nLen; i++)
{
if ('shown' == oDivContainer[i].state)
{
//oDivContainer[i].parentElement.state = "hidden" ;
FoldNode(oDivContainer[i]);
}
}
}
LoadChildren(p_oSrcElement) ;
}
}
}
/************************************************
** LoadChildren(p_oSrcElement)
************************************************/
function LoadChildren(p_oSrcElement)
{
var cXMLSrc ;
var oLabel ;
var oContainerElement = GetChildElement(p_oSrcElement, "container") ;
if (oContainerElement != null)
{
oLabel = GetChildElement(p_oSrcElement, "label")
if ( (oContainerElement.children.length == 0) || ( (!m_oConfig.bDataAsync) && (oContainerElement.children.length > 0) ) )
{
if (oLabel != null)
{
cXMLSrc = oLabel.xmlsrc ;
GetXML(cXMLSrc, oContainerElement) ;
//return true ;
}
}
if (m_oConfig.bUseCheck)
{
var oTargetNode = GetChildElement(p_oSrcElement, "checkbox") ;
if (null != oTargetNode)
{
SetChildrenCheck(oTargetNode, false) ;
}
}
}
return ;
}
//-------------------------------------------------------------------------------------------------
// Mouse 事件 (Click) and (Down, Over, Out)
//-------------------------------------------------------------------------------------------------
/************************************************
** MouseClick(p_oSrcElement)
************************************************/
function MouseClick(p_oSrcElement)
{
var sSrcElementType = p_oSrcElement.type ;
var oTargetNode = p_oSrcElement.parentElement ;
if (sSrcElementType == "label")
{
// ShowHideNode(oTargetNode) ;
SelectNode(oTargetNode) ;
if (m_oConfig.bAutoGoFisrtLeaf)
{
var oParentElement = GetParentElement(p_oSrcElement) ;
var oContainerElement = GetChildElement(p_oSrcElement.parentElement, "container") ;
if (null != oContainerElement)
GoFisrtLink(oContainerElement.getElementsByTagName("DIV")[0]) ;
}
return ;
}
else if(sSrcElementType == "img")
{
if (oTargetNode.type == "leaf")
{
ShowHideNode(oTargetNode) ;
SelectNode(oTargetNode) ;
}
else
{
if (m_oConfig.bImgAsync)
{
ShowHideNode(oTargetNode) ;
}
else
{
ShowHideNode(oTargetNode) ;
SelectNode(oTargetNode) ;
}
}
return ;
}
else if(sSrcElementType == "checkbox")
{
if (m_oConfig.bCheckShowBranch)
{
MouseClick(GetChildElement(p_oSrcElement.parentElement, "label"));
}
if (!m_oConfig.bCheckAsync)
{
oTargetNode = p_oSrcElement.parentElement ;
SelectNode(oTargetNode) ;
}
if ("" != p_oSrcElement.src)
{
SetOneCheckData(p_oSrcElement);
}
SetCheck(p_oSrcElement, true) ;
return ;
}
}
/************************************************
** Mouse 事件 (Down, Over, Out)
** NodeMouseDown(p_oSrcElement)
** NodeMouseOver(p_oSrcElement)
** NodeMouseOut(p_oSrcElement)
** ChangeNodeCls(p_oSrcElement, p_sClassName)
************************************************/
function NodeMouseDown(p_oSrcElement)
{
return ChangeNodeCls(p_oSrcElement, m_oConfig.sClsMouseDown) ;
}
function NodeMouseOver(p_oSrcElement)
{
return ChangeNodeCls(p_oSrcElement, m_oConfig.sClsMouseOver) ;
}
function NodeMouseOut(p_oSrcElement)
{
return ChangeNodeCls(p_oSrcElement, "") ;
}
function ChangeNodeCls(p_oSrcElement, p_sClassName)
{
if (p_sClassName == "")
{
p_oSrcElement.className = p_oSrcElement.classType ;
}
else
{
p_oSrcElement.className = p_sClassName ;
}
return true ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -