Cmd-Befehl: Link in neuem Fenster öffnen?

H

hydrido

Hallo,

bin gerade beim ändern eines Menüs, mit Hilfe Java Skript. Ich will bei den Menu Einträgen nicht mit 'href' arbeiten, da dann der Link nur auf dem Wort funktioniert, nicht aber auf dem ganzen Menüeintrag. Beim verwendeten cmd-Befehl aber habe ich noch keine Möglichkeit gefunden, die verlinkte Seite in einem neuen Fenster zu öffnen. Habt ihr eine Idee?

Hier Teile des Codes: <DIV Id="menuBar" class="menuBar" >
<DIV Id="Bar1" class="Bar" menu="menu1">Home</DIV>
<DIV Id="Bar2" class="Bar" menu="menu2">Links</DIV>

</DIV>
<!--MenuItem Definition -->

<div Id="menu1" class="menu" >
<div Id="menuItem1_1" class="menuItem" title="http://www.hydrant.de" cmd="http://www.hydrant.de/">Intro</div>
<div Id="menuItem1_2" class="menuItem" title="http://www.hydrant.de/index2.htm" cmd="http://www.hydrant.de/index2.htm">Startseite</div>
</div>
<div Id="menu2" class="menu">
<div Id="menuItem2_1" class="menuItem" cmd="http://www.hydrant.de/links/">Links</div>
</div>
....

Habt ihr eine Idee?

Danke und Gruß
michi
 
Kann man mal das Skript dazu sehen.... "cmd" ist nichts, was mir bekannt wäre.

Ansonsten öffnet man neue Fenster mit "window.open()" ....

wenn du also bspw. statt
Code:
cmd="http://www.hydrant.de/links/"
....
Code:
onclick="window.open('http://www.hydrant.de/links/')"
schreibst, hätte das den gewünschten Effekt.
 
es geht!

Juhuu! Es funktioniert - Vielen Dank!

Anbei noch das Javaskript :)

__________
Code:
_______________________________
function InitMenu()
   {
     var bar = menuBar.children     

     for(var i=0;i < bar.length;i++) 
        {
          var menu=eval(bar[i].menu)
          menu.style.visibility = "hidden"
          bar[i].onmouseover = new Function("ShowMenu("+bar[i].id+")")
          var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              var menuItem = eval(Items[j].id)
                
                if(menuItem.menu != null)
                   { 
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    //var tmp = eval(menuItem.id+"_Arrow")
                    // tmp.style.pixelLeft = menu.getBoundingClientRect().Right //- tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)}
               
                 if(menuItem.cmd != null) 
                   {
                   menuItem.onclick = new Function("Do("+menuItem.id+")") } 
                   
              menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
            
            }    
        
        }  
   }
   function FindSubMenu(subMenu)
   {
         var menu=eval(subMenu)
         var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              menu.style.visibility = "hidden"
              var menuItem = eval(Items[j].id)
              
              
              if(menuItem.menu!= null)
                 {
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    // var tmp = eval(menuItem.id+"_Arrow")
                    //tmp.style.pixelLeft = 35 //menuItem.getBoundingClientRect().right - tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)
                 }

                 if(menuItem.cmd != null) 
                   {
                   menuItem.onclick = new Function("Do("+menuItem.id+")") } 
                  
              menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
                 
            }  
   } 
   function ShowMenu(obj)
   {
     HideMenu(menuBar)
     var menu = eval(obj.menu)
     var bar = eval(obj.id)
     bar.className="barOver"
     menu.style.visibility = "visible"
     menu.style.pixelTop =  obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop
     menu.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft
   }
   
   function highlight(obj)
   {
     var PElement = eval(obj.parentElement.id)
     if(PElement.hasChildNodes() == true)
     {  var Elements = PElement.children
       for(var i=0;i<Elements.length;i++)
       {
          TE = eval(Elements[i].id)
          TE.className = "menuItem"
       }
      } 
     obj.className="ItemMouseOver"
     window.defaultStatus = obj.title
     ShowSubMenu(obj)
   }
   
   function Do(obj)
   {
    var cmd = eval(obj).cmd	
    window.navigate(cmd)
     
   }
   
   function HideMenu(obj)
   {
          if(obj.hasChildNodes()==true)
              {  
                 var child = obj.children     
                 
                 for(var j =0;j<child.length;j++)
                  {
                     if (child[j].className=="barOver")
                     {var bar = eval(child[j].id)
                      bar.className="Bar"}
                      
                     if(child[j].menu != null)
                       {
                          var childMenu = eval(child[j].menu)
                          if(childMenu.hasChildNodes()==true) 
                               HideMenu(childMenu)
                          
                           childMenu.style.visibility = "hidden" 
                         }
                  }
              
              }
   }
  function ShowSubMenu(obj)
  {
     PMenu = eval(obj.parentElement.id)
      HideMenu(PMenu)
     if(obj.menu != null)
     {
     var menu = eval(obj.menu)
     menu.style.visibility = "visible"
     menu.style.pixelTop =  obj.getBoundingClientRect().top + Bdy.scrollTop
     menu.style.pixelLeft = obj.getBoundingClientRect().right + Bdy.scrollLeft
     if(menu.getBoundingClientRect().right > window.screen.availWidth )
       menu.style.pixelLeft = obj.getBoundingClientRect().left - menu.offsetWidth
    }
  } 





 ///////////////////CascadedDropdown Menu/////////////////
 //Date : 08/09/2001               						//
 //Version : 1.0        								//
 //Author Mr.Arun N Kumar	                            //
 //EMail: n_arunk@hotmail.com					//		
 /////////////////////////////////////////////////////////
 // Modifications on this code is not recomended
 // Suggestions are welcome
 
noch was

das Skript macht mir noch ein einer Stelle Probleme. Wenn man das Menu mit mehreren Einträgen hat, und den Webbrowser verkleinert (Breite) auf ca. 50%, verkleinert sich auch das Menü (Zeilenumbruch) und der IE steht und reagiert nicht mehr.

Werde den Effekt mit einer fest vorgegebenen Breite verhindert.

Gruß
michi
 
Re: es geht!

hydrido hat gesagt.:
Juhuu! Es funktioniert - Vielen Dank!

Anbei noch das Javaskript :)

_________________________________________
Code:
function InitMenu()
   {
     var bar = menuBar.children     

     for(var i=0;i < bar.length;i++) 
        {
          var menu=eval(bar[i].menu)
          menu.style.visibility = "hidden"
          bar[i].onmouseover = new Function("ShowMenu("+bar[i].id+")")
          var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              var menuItem = eval(Items[j].id)
                
                if(menuItem.menu != null)
                   { 
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    //var tmp = eval(menuItem.id+"_Arrow")
                    // tmp.style.pixelLeft = menu.getBoundingClientRect().Right //- tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)}
               
                 if(menuItem.cmd != null) 
                   {
                   menuItem.onclick = new Function("Do("+menuItem.id+")") } 
                   
              menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
            
            }    
        
        }  
   }
   function FindSubMenu(subMenu)
   {
         var menu=eval(subMenu)
         var Items = menu.children
          for(var j=0; j<Items.length; j++)
            {
              menu.style.visibility = "hidden"
              var menuItem = eval(Items[j].id)
              
              
              if(menuItem.menu!= null)
                 {
                    menuItem.innerHTML += "<Span Id="+menuItem.id+"_Arrow class='Arrow'>4</Span>"
                    // var tmp = eval(menuItem.id+"_Arrow")
                    //tmp.style.pixelLeft = 35 //menuItem.getBoundingClientRect().right - tmp.offsetWidth - 15
                    FindSubMenu(menuItem.menu)
                 }

                 if(menuItem.cmd != null) 
                   {
                   menuItem.onclick = new Function("Do("+menuItem.id+")") } 
                  
              menuItem.onmouseover = new Function("highlight("+Items[j].id+")")
                 
            }  
   } 
   function ShowMenu(obj)
   {
     HideMenu(menuBar)
     var menu = eval(obj.menu)
     var bar = eval(obj.id)
     bar.className="barOver"
     menu.style.visibility = "visible"
     menu.style.pixelTop =  obj.getBoundingClientRect().top + obj.offsetHeight + Bdy.scrollTop
     menu.style.pixelLeft = obj.getBoundingClientRect().left + Bdy.scrollLeft
   }
   
   function highlight(obj)
   {
     var PElement = eval(obj.parentElement.id)
     if(PElement.hasChildNodes() == true)
     {  var Elements = PElement.children
       for(var i=0;i<Elements.length;i++)
       {
          TE = eval(Elements[i].id)
          TE.className = "menuItem"
       }
      } 
     obj.className="ItemMouseOver"
     window.defaultStatus = obj.title
     ShowSubMenu(obj)
   }
   
   function Do(obj)
   {
    var cmd = eval(obj).cmd	
    window.navigate(cmd)
     
   }
   
   function HideMenu(obj)
   {
          if(obj.hasChildNodes()==true)
              {  
                 var child = obj.children     
                 
                 for(var j =0;j<child.length;j++)
                  {
                     if (child[j].className=="barOver")
                     {var bar = eval(child[j].id)
                      bar.className="Bar"}
                      
                     if(child[j].menu != null)
                       {
                          var childMenu = eval(child[j].menu)
                          if(childMenu.hasChildNodes()==true) 
                               HideMenu(childMenu)
                          
                           childMenu.style.visibility = "hidden" 
                         }
                  }
              
              }
   }
  function ShowSubMenu(obj)
  {
     PMenu = eval(obj.parentElement.id)
      HideMenu(PMenu)
     if(obj.menu != null)
     {
     var menu = eval(obj.menu)
     menu.style.visibility = "visible"
     menu.style.pixelTop =  obj.getBoundingClientRect().top + Bdy.scrollTop
     menu.style.pixelLeft = obj.getBoundingClientRect().right + Bdy.scrollLeft
     if(menu.getBoundingClientRect().right > window.screen.availWidth )
       menu.style.pixelLeft = obj.getBoundingClientRect().left - menu.offsetWidth
    }
  } 





 ///////////////////CascadedDropdown Menu/////////////////
 //Date : 08/09/2001               						//
 //Version : 1.0        								//
 //Author Mr.Arun N Kumar	                            //
 //EMail: n_arunk@hotmail.com							//		
 /////////////////////////////////////////////////////////
 // Modifications on this code is not recomended
 // Suggestions are welcome

Wie und wo startet das ding (also dein Script) und mit was... ?
Blickt da jemand noch durch ?

Würde mich sehr freuen, wenn du mir da bisschen Helfen könntest...

MfG
Spacedoener
 
Hi,

na klar, aber das einzige was noch fehlt ist der Aufruf im Head

<script language="javascript" src="CascadeMenu.js"></script>

welches unten rein kopiert ist, und der Aufruf im Body der eigentlichen html-Seite:

__________________________

<BODY OnLoad="InitMenu()" Onclick="HideMenu(menuBar)" ID="Bdy" bgColor="#D0D0D0">


<DIV Id="menuBar" class="menuBar" >
<DIV Id="Bar1" class="Bar" menu="menu1">Home</DIV>
<DIV Id="Bar2" class="Bar" menu="menu2">Links</DIV>


</DIV>
<!--MenuItem Definition -->

<div Id="menu1" class="menu" >
<div Id="menuItem1_1" class="menuItem" title="http://www.hydrant.de" onclick="window.open('http://www.hydrant.de/links/')">Intro</div>
<div Id="menuItem1_2" class="menuItem" title="http://www.hydrant.de/index2.htm" onclick="window.open('http://www.hydrant.de/index2.htm')">Startseite</div>
</div>

....


____________________________________

Dass du das Skript nochmal in den Thread kopiert hast, trägt sicherlich nicht zu lesbarkeit bei. ;)

Aber wie gesagt, jetzt funktioniert es.

Gruß
michi
 
Original geschrieben von hydrido
Hi,

na klar, aber das einzige was noch fehlt ist der Aufruf im Head

<script language="javascript" src="CascadeMenu.js"></script>

welches unten rein kopiert ist, und der Aufruf im Body der eigentlichen html-Seite:

__________________________

<BODY OnLoad="InitMenu()" Onclick="HideMenu(menuBar)" ID="Bdy" bgColor="#D0D0D0">


<DIV Id="menuBar" class="menuBar" >
<DIV Id="Bar1" class="Bar" menu="menu1">Home</DIV>
<DIV Id="Bar2" class="Bar" menu="menu2">Links</DIV>


</DIV>
<!--MenuItem Definition -->

<div Id="menu1" class="menu" >
<div Id="menuItem1_1" class="menuItem" title="http://www.hydrant.de" onclick="window.open('http://www.hydrant.de/links/')">Intro</div>
<div Id="menuItem1_2" class="menuItem" title="http://www.hydrant.de/index2.htm" onclick="window.open('http://www.hydrant.de/index2.htm')">Startseite</div>
</div>

....


____________________________________

Dass du das Skript nochmal in den Thread kopiert hast, trägt sicherlich nicht zu lesbarkeit bei. ;)

Aber wie gesagt, jetzt funktioniert es.

Gruß
michi


Sorry aber dein Script so wie du es hier gepostet hast, wimmelt von fehlern, es funktioniert nicht... :( :( :(
Ist reinste Kaos irgendwie...
Kannst du das mal nicht etwas besser mal posten, so das man es auch direkt sofort versteht ?

MfG
Spacedoener
 

Neue Beiträge

Zurück