Solved

XML Nav bar

Posted on 2004-08-13
7
271 Views
Last Modified: 2008-03-03
My question deals with XML and flash, so I hope I can post this question here.
I did a drop down menu using xml and I was able to use flash but I can link my home button to my home page. This is the code.

vb<?xml version="1.0"?>
<NAV main_onColor="#000000" main_offColor="#ff6600" sub_onColor="#000000" sub_offColor="#666666" navWidth="150" fadeTime="0" lineWidth="150" main_y_padding="4" sub_y_padding="2" sub_indent="10">
   <MAIN text="HOME" URL="home.html" expand="true" >
      <SUB text="Current State" URL="currentstate.html"></SUB>
      <SUB text="Mission" URL="mission.html"></SUB>
        <SUB text="Who We Are" URL="whoweare.html"></SUB>
      <SUB text="Background" URL="background.html"></SUB>
         <SUB text="Leadership" URL="leadership.html"></SUB>
      <SUB text="World Policy Philosophy" URL="worldpophil.html"></SUB>
   </MAIN>
</NAV>
0
Comment
Question by:Isaac
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 26

Expert Comment

by:rdcpro
ID: 11798154
I could be wrong, but I don't think it's possible to do an expand and navigate using the prepackaged actionscript for the Menu.  But if you want, you can create a separate expanding container for the subs, like:


<?xml version="1.0"?>
<NAV main_onColor="#000000" main_offColor="#ff6600" sub_onColor="#000000" sub_offColor="#666666" navWidth="150" fadeTime="0" lineWidth="150" main_y_padding="4" sub_y_padding="2" sub_indent="10">
   <MAIN text="HOME" URL="home.html" expand="true" ></MAIN>
   <MAIN text="About" expand="true">
      <SUB text="Current State" URL="currentstate.html"></SUB>
      <SUB text="Mission" URL="mission.html"></SUB>
       <SUB text="Who We Are" URL="whoweare.html"></SUB>
      <SUB text="Background" URL="background.html"></SUB>
        <SUB text="Leadership" URL="leadership.html"></SUB>
      <SUB text="World Policy Philosophy" URL="worldpophil.html"></SUB>
   </MAIN>
   <MAIN text="Some Other Category" URL="mycategory.html"></MAIN>
</NAV>

etc.

Regards,
Mike Sharp
0
 
LVL 5

Author Comment

by:Isaac
ID: 11836794
I TRIED that Mike but it didn't show my sub menu. It only showed the home. Thanks anyway.
0
 
LVL 26

Expert Comment

by:rdcpro
ID: 11837157
Something is strange here, because it should have shown a "Home" and an "About".  You click on home, it goes home, you click on About and it epands to show the Subs for About...I did notice a small mistake in my code. This tag:
   <MAIN text="HOME" URL="home.html" expand="true" ></MAIN>
should have been like:
   <MAIN text="HOME" URL="home.html" ></MAIN>

Like so:

<?xml version="1.0"?>
<NAV main_onColor="#000000" main_offColor="#ff6600" sub_onColor="#000000" sub_offColor="#666666" navWidth="150" fadeTime="0" lineWidth="150" main_y_padding="4" sub_y_padding="2" sub_indent="10">
   <MAIN text="HOME" URL="home.html" ></MAIN>
   <MAIN text="About" expand="true">
      <SUB text="Current State" URL="currentstate.html"></SUB>
      <SUB text="Mission" URL="mission.html"></SUB>
      <SUB text="Who We Are" URL="whoweare.html"></SUB>
      <SUB text="Background" URL="background.html"></SUB>
      <SUB text="Leadership" URL="leadership.html"></SUB>
      <SUB text="World Policy Philosophy" URL="worldpophil.html"></SUB>
   </MAIN>
   <MAIN text="Some Other Category" URL="mycategory.html"></MAIN>
</NAV>

The problem is you're wanting a click on Home to both navigate to another page, and expand the category, which are mutually exclusive actions.

Regards,
Mike Sharp
0
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 
LVL 5

Author Comment

by:Isaac
ID: 11895977
I don't think this will work. I want the home to go to the home page and expand at the same time.
0
 
LVL 26

Expert Comment

by:rdcpro
ID: 11897435
Right, but that doesn't make sense, does it?  The problem is you're wanting a click on Home to both navigate to another page, and expand the category, which are mutually exclusive actions.   If you did this in straight HTML, you can have both an onclick and an href on an anchor tag.  The onclick is executed first, then the page navigates...which loses the original result of the onclick.  

You'd somehow need to maintain the state of the menu (with a query string, probably) so that when you navigate to the home page, your menu is then shown expanded.   I've seen this done with frames (because you're actually navigating a separate frame, not the one with the menu).

Regards,
Mike Sharp

0
 
LVL 5

Author Comment

by:Isaac
ID: 11903388
I will give you the points if you tell me what is the code in straight HTML?
0
 
LVL 26

Accepted Solution

by:
rdcpro earned 500 total points
ID: 11904369
Here is home.html

<html>
<head>
<script language="JScript">
      function toggle()
      {
            if (target.style.display == "none")
            {
                  // display the hidden div
                  target.style.display = "";
            }
            else
            {
                  // hide the div
                  target.style.display = "none";
            }
      }
</script>
</head>
<body>
<a href="about.html" onclick="toggle()">Go back to about</a>
<br>
<a href="#" onclick="toggle()">Toggle without navigating</a>
<div id="target" style="display:none;">
      <h1>Now you see me</h1>
</div>
</body>
</html>

here is about.html:

<html>
<head>
<script language="JScript">
      function toggle()
      {
            if (target.style.display = "none")
            {
                  // display the hidden div
                  target.style.display = "";
            }
            else
            {
                  // hide the div
                  target.style.display = "none";
            }
      }
</script>
</head>
<body>
<a href="home.html" onclick="toggle()">Go Home</a>
<br>
<a href="#" onclick="toggle()">Toggle without navigating</a>
<div id="target" style="display:none;">
      <h1>Now you see me</h1>
</div>
</body>
</html>

As you can see, it's not possible to BOTH display the hidden div AND navigate away from the page that has the hidden div.  Think about it!  If you click the link to go back and forth, sometimes--just for an instant--you'll see the div appear.

What you need is a *SEPARATE* link to do the expanding and collapsing, like:

<html>
<head>
<script language="JScript">
      function toggle()
      {
            if (target.style.display == "none")
            {
                  // display the hidden div
                  target.style.display = "";
            }
            else
            {
                  // hide the div
                  target.style.display = "none";
            }
      }

      function switchText(o)
      {
            if (target.style.display == "none")
            {
                  o.innerText = "-";
            }
            else
            {
                  o.innerText = "+";
            }
            toggle();
      }
</script>
</head>
<body>
<span onclick="switchText(this)" style="color:blue;width:1em;cursor:hand;">+</span>
<a href="home.html" onclick="toggle()">Go Home</a>
<div id="target" style="display:none;">
      <h1>Now you see me</h1>
</div>
<br>
<a href="#" onclick="toggle()">Toggle without navigating</a>
</body>
</html>

But your canned actionscript doesn't have that capability...you have to decide which you want; navigate or expand.

By the way, the above code is not necessarily cross-browser.  It's just to illustrate the concept.

Regards
Mike Sharp
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Problem How to write an Xquery that works like a SQL outer join, providing placeholders for absent data on the outer side?  I give a bit more background at the end. The situation expressed as relational data Let’s work through this.  I’ve …
Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
Suggested Courses

615 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question