-----
function getTreeIcon( siteItem )
  {
    var icon;
    if ( siteItem.children.length == 0 )
      if ( style == "OUTLINE" )
        icon = "blank.gif";
      else if ( siteItem.last )
        icon = "simplel.gif";
      else
        icon = "simple.gif";
    else if ( siteItem.opened )
      if ( style == "OUTLINE" )
        icon = "minus.gif";
      else if ( siteItem.last )
        icon = "colapsel.gif";
      else
        icon = "colapse.gif";
    else if ( style == "OUTLINE" )
      icon = "plus.gif";
    else if ( siteItem.last )
      icon = "expandl.gif";
    else
      icon = "expand.gif";
    return scriptURL+ imagepath +icon;
  }
  
// ----------------------------------------------------------------------------
// Called when an item is clicked. Expands/collapses the item and selects
// the item.
// ----------------------------------------------------------------------------
function itemClicked( siteItem )
  {
    if ( (siteItem.children.length != 0) && (browser != "OTHER") )
      {
        siteItem.opened = !siteItem.opened;
        if ( siteItem.opened )
          expandColapse( siteItem );
        else
          colapse( siteItem );
      }
    selectItem( siteItem );
    adjustY();
  }
  
// ----------------------------------------------------------------------------
// Called when the mouse moves out of an item.
// ----------------------------------------------------------------------------
function itemMouseOut( siteItem )
  {
    siteItem.mouseOver = false;
    if ( (siteItem.style != null) && (!siteItem.selected) )
      siteItem.style.color = "";
    updateIcons( siteItem );
    adjustY();
  }
  
// ----------------------------------------------------------------------------
// Called when the mouse moves over an item from outside.
// ----------------------------------------------------------------------------
function itemMouseOver( siteItem )
  {
    siteItem.mouseOver = true;
    //if ( (siteItem.style != null) && (!siteItem.selected) )
      siteItem.style.color = mouseOverColor;
    updateIcons( siteItem );
    adjustY();
    var message = "";
    if ( siteItem.message != null )
      message = siteItem.message;
    else if ( siteItem.url != null )
      message = siteItem.url;
    return message;
  }// ----------------------------------------------------------------------------
// Outputs an anchor (<A>) tag for one item.
//
// Parameters:
//   siteItem     item for which to output the link
//   element      HTML code to write inside the anchor tag
// ----------------------------------------------------------------------------
function outputItemAnchor( siteItem, element )
  {
    _write( "<td nowrap>" );
    if ( siteItem.url == null )
      _write( "<a href='javascript:itemClicked(items["+siteItem.id+"])'" );
      
    else
      {
        _write( "<a href='"+siteItem.url+"'" );
        if ( siteItem.target != null )
          _write( " target='"+siteItem.target+"'" );
        // _write( " onClick='itemClicked(items["+siteItem.id+"])'" );
      }
    _write( " onMouseOver='window.status=itemMouseOver(items["+siteItem.id+"]); return true'" );
    _write( " onMouseOut='itemMouseOut(items["+siteItem.id+"]); window.status=\"\"; return true'" );
    _write( ">" );
    _write( element );
    _write( "</a>" );
    _write( "</td>" );
  }
  
// ----------------------------------------------------------------------------
// Generates the HTML code for a given item.
//
// Parameters:
//   siteItem   item for which to generate the HTML
//   left       piece of HTML to "ident" the item
// ----------------------------------------------------------------------------
function renderItem( siteItem, left )
  {
    if ( browser == "IE" )
      _write( "<table border='0' cellspacing='0' cellpadding='0' id='item"+siteItem.id+"' style='position:relative;display:none;font-size: 9pt; font-family: 宋体' width='100%'>" );
    else if ( browser == "NS" )
      {
        _write( "<layer id='item"+siteItem.id+"' position='relative' visibility='hide'>" );
        _write( "<table border='0' cellspacing='0' cellpadding='0' width='100%'>" );
      }
    else
      _write( "<table border='0' cellspacing='0' cellpadding='0' width='100%' style='font-size: 9pt; font-family: 宋体;'>" );
    _write( "<tr align=left valign=middle>" );
    _write( left );
    if ( style != "LIST" )
      {
        if ( siteItem.children.length > 0 )
          _write( "<td><a href='javascript:treeIconClicked(items["+siteItem.id+"])' onMouseOver='window.status=\"\"; return true'><img name='treeIcon"+siteItem.id+"' src='"+getTreeIcon(siteItem)+"' border='0' width='19' height='16'></a></td>" );
        else
          _write( "<td><img src='"+getTreeIcon(siteItem)+"' width='19' height='16'></td>" );
        _write( "<td><img src='"+scriptURL+imagepath + "space.gif' width='3' height='16'></td>" );
      }
    var icon = siteItem.colapsedIcon;
    if ( (browser == "OTHER") && (siteItem.children.length > 0) )
      icon = siteItem.expandedIcon;
    if ( icon != null )
      {
        outputItemAnchor( siteItem, "<img name='icon"+siteItem.id+"' src='"+scriptURL+icon+"' border='0' width='"+siteItem.iconWidth+"' height='"+siteItem.iconHeight+"'>" );
        outputItemAnchor( siteItem, "<img src='"+scriptURL+imagepath + "space.gif' border='0' width='3' height='16'>" );
      }
    if ( siteItem.text != null )
      {
        var s = siteItem.text;
        if ( (siteItem.font != null) || (siteItem.size != null) || (siteItem.color != null) || (browser == "IE") )
          {
            var s1 = "<font";
            if ( browser == "IE" )
              s1 += " id='style"+siteItem.id+"'";
            if ( siteItem.font != null )
              s1 += " face='"+siteItem.font+"'";
            if ( siteItem.size != null )
              s1 += " size='"+siteItem.size+"'";
            if ( siteItem.color != null )
              s1 += " color='"+siteItem.color+"'";
            s1 += ">";
            s = s1+s+"</font>";
          }
        if ( siteItem.bold )
          s = "<b>"+s+"</b>";
        if ( siteItem.italic )
          s = "<i>"+s+"</i>";
        outputItemAnchor( siteItem, s );
      }
    _write( "<td width=100%></td>" );
    _write( "</tr>" );
    if ( browser == "IE" )
      {
        _write( "</table>" );
        siteItem.obj = document.all["item"+siteItem.id];
        siteItem.treeIcon = document.all["treeIcon"+siteItem.id];
        siteItem.icon = document.all["icon"+siteItem.id];
        if ( siteItem.text != null )
          siteItem.style = document.all["style"+siteItem.id].style;
      }
    else if ( browser == "NS" )
      {
        _write( "</table>" );
        _writeln( "</layer>" );
        siteItem.obj = document.sitemap.document.layers["item"+siteItem.id];
        siteItem.treeIcon = siteItem.obj.document.images["treeIcon"+siteItem.id];
        siteItem.icon = siteItem.obj.document.images["icon"+siteItem.id];
      }
    else
      _writeln( "</table>" );
    if ( (siteItem.last) || (style != "TREE") )
      left += "<td><img src='"+scriptURL+imagepath + "blank.gif' width='19' height='16'></td>";
    else
      left += "<td><img src='"+scriptURL+imagepath + "treeline.gif' width='19' height='16'></td>";
    for ( var i=0; i<siteItem.children.length; i++ )
      renderItem( siteItem.children[i], left );
  }

解决方案 »

  1.   

    // Restores all item icons after the window was resized, under NS.
    // function restoreIcons()
      {
        for ( var i=0; i<items.length; i++ )
          updateIcons( items[i] );
      }
    -----
    function selectItem( siteItem )
      {
        if ( selectedItem != null )
          {
            selectedItem.selected = false;
            if ( selectedItem.style != null )
              {
                selectedItem.style.color = "";
                selectedItem.style.backgroundColor = "";
              }
            updateIcons( selectedItem );
          }
        selectedItem = siteItem;
        if ( siteItem != null )
          {
            siteItem.selected = true;
            if ( siteItem.style != null )
              {
                siteItem.style.color = selectedColor;
                siteItem.style.backgroundColor = selectedBackground;
              }
            updateIcons( siteItem );
          }
      }// 
    ----------------------------------------------------------------------------
    // Called when the tree icon of an item is clicked. Expands/collapses the
    -----
    function treeIconClicked( siteItem )
      {
        if ( (browser == "OTHER") || (siteItem.children.length == 0) )
          return;
        if ( siteItem.opened )
          colapse( siteItem );
        else
          expandColapse( siteItem );
        siteItem.opened = !siteItem.opened;
        updateIcons( siteItem );
        adjustY();
      }-----
    // Updates the icons of an item according to its state.
    -----
    function updateIcons( siteItem )
      {
        if ( (style != "LIST") && (siteItem.children.length != 0) )
          siteItem.treeIcon.src = getTreeIcon(siteItem);
        if ( siteItem.icon == null )
          return;
        if ( (siteItem.selected) && (siteItem.selectedIcon != null) )
          siteItem.icon.src = scriptURL+siteItem.selectedIcon;
        else if ( (siteItem.mouseOver) && (siteItem.mouseOverIcon != null) )
          siteItem.icon.src = scriptURL+siteItem.mouseOverIcon;
        else if ( siteItem.opened )
          siteItem.icon.src = scriptURL+siteItem.expandedIcon;
        else
          siteItem.icon.src = scriptURL+siteItem.colapsedIcon;
      }-----
    // Writes a string to the sitemap document.
    -----
    function _write( s )
      {
        if ( browser == "NS" )
          document.sitemap.document.write( s );
        else
          document.write( s );
      }-----
    // Writes a string and a CRLF to the sitemap document.
    function _writeln( s )
      {
        if ( browser == "NS" )
          document.sitemap.document.writeln( s );
        else
          document.writeln( s );
      }
    -----function Item( colapsedIcon, expandedIcon, mouseOverIcon, selectedIcon, iconWidth, iconHeight, text, font, bold, italic, size, color, message, url, target) // ByHance
    {
        this.id = items.length;
        this.colapsedIcon = colapsedIcon;
        this.expandedIcon = expandedIcon;
        this.mouseOverIcon = mouseOverIcon;
        this.selectedIcon = selectedIcon;
        this.iconWidth = iconWidth;
        this.iconHeight = iconHeight;
        this.text = text;
        this.font = font;
        this.bold = bold;
        this.italic = italic;
        this.size = size;
        this.color = color;
        this.message = message;
        this.url = url;
        this.target = target;    this.opened = false;
        this.selected = false;
        this.mouseOver = false;    this.children = new Array();
        // this.last = last; // ByHance
        this.last = true;    this.obj = null;
        this.treeIcon = null;
        this.icon = null;
        this.style = null;
        this.parent = null;    items[this.id] = this;
    }// -----
    function addItem( siteItem, parent )
    {    if ( parent == null )
        {
         var id = topItems.length;
         if(id>0)
         topItems[id-1].last = false;
           topItems[topItems.length] = siteItem;
        }
        else
        {
         var id = parent.children.length;
         if(id>0)
         parent.children[id-1].last = false;
        
           parent.children[parent.children.length] = siteItem;
        }
        
        siteItem.parent = parent;
    }// -----------------------------------------------------------------------function renderSitemap( _style, _expandTopItems, _mouseOverColor, _selectedColor, _selectedBackground, _scriptURL )
      {
        if ( document.all )
          browser = "IE";
        else if ( document.layers )
          browser = "NS";    if ( browser == "OTHER" )
          _style = "LIST";
        style = _style;    scriptURL = _scriptURL;
        expandTopItems = _expandTopItems;
        mouseOverColor = _mouseOverColor;
        selectedColor = _selectedColor;
        selectedBackground = _selectedBackground;    if ( browser == "NS" )
          {
            document.writeln( "<ilayer id='sitemap'></ilayer>" );
            window.onLoad = display;
          }
        else
          display();
      }  surfmap3.js
    var imagepath = "../images/";
    level0 = new Item("../images/book222.gif","../images/bookbc22.gif","../images/book222.gif",null,9,9,"关于**","Verdana",false,false,2,"#000000","",null,"right");
    addItem(level0);
    level1 = new Item("../images/book222.gif","../images/book222.gif","../images/book222.gif",null,9,9,"公司概况","Verdana",false,false,2,"#F04000","","../aduot_d&e/index.asp?treeid=show","_parent");
    addItem(level1,level0)
    level1 = new Item("../images/book222.gif","../images/book222.gif","../images/book222.gif",null,9,9,"合作伙伴","Verdana",false,false,2,"#F04000","","../aduot_d&e/index.asptreeid=show","_parent");
    addItem(level1,level0);
    level1 = new Item("../images/book222.gif","../images/book222.gif","../images/book222.gif",null,9,9,"成功案例","Verdana",false,false,2,"#F04000","","../aduot_d&e/index.asptreeid=show","_parent");
    addItem(level1,level0);
    renderSitemap("true", false, "#ffffff", "#000000", "#7AB5EF", "" );
      

  2.   


    var oRange=document.body.createTextRange();
    if (oRange.findText('这里是你的节点名称'))
      {oRange.select();}