Micha89: Google Map Maker extern verlinken

Guten Abend,

ich habe noch eine kleine Frage zur GoogleMap. Ich binde die wie folgt ein:

  
          <script type="text/javascript">  
    //<![CDATA[  
  
    var map;  
    function load()  
    {  
        if (GBrowserIsCompatible())  
        {  
            map = new GMap2(document.getElementById("panel-map"));  
            geocoder = new GClientGeocoder();  
            map.setCenter(new GLatLng(50.936796,6.946106), 13);  
  
            showAddress('<?php print implode(', ', $adress); ?>');  
        }  
    }  
  
    function showAddress(address)  
    {  
        if (geocoder)  
        {  
            geocoder.getLatLng(  
                 address  
                ,function(point)  
                    {  
                        if (!point)  
                        {  
                            console.log(address + " not found");  
                        }  
                        else  
                        {  
                            map.setCenter(point, 13);  
                            var marker = new GMarker(point);  
                            map.addOverlay(marker);  
                            marker.openInfoWindowHtml("http://www.giga.de");  
                        }  
                    }  
                );  
        }  
    }  
window.addEvent('domready', load);  
window.addEvent('unload', GUnload);  
    //]]>  
    </script>  

das ganze klappt auch nur bei einem Punkt komme ich noch nicht weiter, ich habe das hier:

  
marker.openInfoWindowHtml("http://www.hamburg.de");  

hier wollte ich erreichen dass wenn man drauf klickt also auf den Maker, dass dan eine externe URL aufgeht. Aber leider klappt das nicht. Hat einer eine Idee?

Gruß,
Micha

  1. Hallo Micha89,

    marker.openInfoWindowHtml("http://www.hamburg.de");

      
    openInfoWindowHtml interpretiert den Parameter als innerHTML. Versuch mal  
      
    ~~~php
      
    marker.openInfoWindowHtml("<a href='http://www.hamburg.de'>Nach Hamburg</a>");  
    
    

    Gruß, Jürgen

    1. Hall Jürgen,

      vielen Dank für deine Nachricht, aber das was du mir geschrieben hast geht zwar aber ist nicht das was ich brauch :-) ich habe ja auf meiner Karte so ein Marker also ein Roter Punkt, dieser möchte ich direkt verlinken auf einen Externen Link.

      So wie es jetzt ist, geht erst so ein weißer Kasten auf und darin ist der Link und das ist genau falsch.

      Ich hoffe Ihr versteht was ich meine.

      Gruß,
      Micha

      1. Hallo Micha89,

        ... ich habe ja auf meiner Karte so ein Marker also ein Roter Punkt, dieser möchte ich direkt verlinken auf einen Externen Link.

        mit GEvent kannst du Elementen einen Eventhandler geben, versuch mal

            punkt = map.addOverlay(marker);  
          
            GEvent.addListener(punkt, "click", function() {  
              alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen  
              window.location.href = "www.hamburg.de";  
            });  
        
        

        das habe ich jetzt nicht getestet.

        Gruß, Jürgen

        1. Hallo Jürgen,

          danke dir für deine Antwort, hab es jetz mal so eingebaut:

            
                    <script type="text/javascript">  
              //<![CDATA[  
            
              var map;  
              function load()  
              {  
                  if (GBrowserIsCompatible())  
                  {  
                      map = new GMap2(document.getElementById("panel-map"));  
                      geocoder = new GClientGeocoder();  
                      map.setCenter(new GLatLng(50.936796,6.946106), 13);  
            
                      showAddress('<?php print implode(', ', $adress); ?>');  
                  }  
              }  
            
              function showAddress(address)  
              {  
                  if (geocoder)  
                  {  
                      geocoder.getLatLng(  
                           address  
                          ,function(point)  
                              {  
                                  if (!point)  
                                  {  
                                      console.log(address + " not found");  
                                  }  
                                  else  
                                  {  
                                      map.setCenter(point, 13);  
                                      var marker = new GMarker(point);  
                                      //map.addOverlay(marker);  
                                      //marker.openInfoWindowHtml("http://www.giga.de");  
                                  punkt = map.addOverlay(marker);  
            
              GEvent.addListener(punkt, "click", function() {  
                alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen  
                window.location.href = "www.hamburg.de";  
              });  
          						}  
                              }  
                          );  
                  }  
              }  
          window.addEvent('domready', load);  
          window.addEvent('unload', GUnload);  
              //]]>  
              </script>  
          
          

          aber leider geht das so nicht. Habe ich da ein Fehler beim einbauen?

          Gruß,
          Micha

          1. Hallo Micha89,

            punkt = map.addOverlay(marker);

            GEvent.addListener(punkt, "click", function() {
                  alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen
                  window.location.href = "www.hamburg.de";
                });

            da hat mich mein Gedächtnis im Stich gelassen, es muss so gemacht werden:

                 map.addOverlay(marker);  
              
                 GEvent.addListener(marker, "click", function() {  
                   alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen  
                   window.location.href = "www.hamburg.de";  
                 });  
            
            

            der Eventhandler muss am Marker notiert werden.

            Gruß, Jürgen

            1. Hallo JürgenB,

              Hallo Micha89,

              punkt = map.addOverlay(marker);

              GEvent.addListener(punkt, "click", function() {
                    alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen
                    window.location.href = "www.hamburg.de";
                  });

              da hat mich mein Gedächtnis im Stich gelassen, es muss so gemacht werden:

              map.addOverlay(marker);

              GEvent.addListener(marker, "click", function() {
                     alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen
                     window.location.href = "www.hamburg.de";
                   });

              
              > der Eventhandler muss am Marker notiert werden.  
              >   
              > Gruß, Jürgen  
              >   
              
              Gruß, Jürgen  
              
              
              1. Liebe Moderatoren,

                der letzte Beitrag kann gelöscht werden, es war ein Klick zu viel.

                Gruß, Jürgen

            2. Hallo Jürgen,

              vielen vielen dank für deine Hilfe so hat es nun geklappt. Aber eine kleine Frage habe ich noch

                
                   GEvent.addListener(marker, "click", function() {  
                     alert("Jetzt gehts nach www.hamburg.de");   // nur zum Testen  
                     window.location.href = "www.hamburg.de";  
                   });  
              
              

              kann man da auch das so machen, dass es ein neues Fenster aufgeht also target="_blank" ?

              Gruß,
              Micha

              1. Hallo Micha89,

                kann man da auch das so machen, dass es ein neues Fenster aufgeht also target="_blank" ?

                so weit ich weiß, geht das nur über window.open, und das öffnet ein Popup-Fenster, also nicht wirklich der Brüller.

                Gruß, Jürgen

                1. Hi!

                  so weit ich weiß, geht das nur über window.open, und das öffnet ein Popup-Fenster, also nicht wirklich der Brüller.

                  Wo ist der Unterschied zwischen einem Fenster und einem PopUp-Fenster?

                  --
                  "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                        - T. Pratchett
                  1. Hallo Steel,

                    Wo ist der Unterschied zwischen einem Fenster und einem PopUp-Fenster?

                    für mich ist ein Popup-Fenster etwas, was über window.open geöffnet wird, ein Fenster wird per Link und target-Attribut geöffnet, wobei hier oft auch nur ein neuer Tab geöffnet wird.

                    Kennst du denn eine Möglichkeit, per Javascript-onclick ein neues Fenster oder Tab zu öffnen, also target zu simulieren?

                    Gruß, Jürgen

                    1. Moin!

                      Wo ist der Unterschied zwischen einem Fenster und einem PopUp-Fenster?

                      für mich ist ein Popup-Fenster etwas, was über window.open geöffnet wird, ein Fenster wird per Link und target-Attribut geöffnet, wobei hier oft auch nur ein neuer Tab geöffnet wird.

                      Kennst du denn eine Möglichkeit, per Javascript-onclick ein neues Fenster oder Tab zu öffnen, also target zu simulieren?

                      Ich verstehe immer noch nicht. Wo ist der Unterschied zwischen einem mit window.open() und einem per Target-Attribut geoeffnetem Fenster? Nur weil Du ersteres als PopUp bezeichnest, ist doch das Fenster trotzdem identisch. Lediglich die Einschraenkung durch JS spielt hier eine Rolle. window.open() funktioniert halt nicht ohne JS bzw. man muss es lokal erstmal erlauben. Wenn es zu einem Ergebnis kommt, ist dieses aber doch identisch.

                        <a href="res1.html" target="lewindow">LINK</a>  
                        <a onclick="window.open('res2.html', 'lewindow')">LINK</a>
                      

                      In Bezug auf sich oeffnende Fenster sind beide Codes identisch. (JS vorrausgesetzt) Beide oeffnen ein Fenster mit dem Namen 'lewindow' bzw. laden eine Ressource in eben dieses. (jedenfalls mit den Browsern die ich so zur Verfuegung habe)

                      --
                      "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                            - T. Pratchett
                      1. Hallo Steel,

                        ich benutze auf meinen Seiten keine Popups und beim Surfen unterdrücke ich sie. Daher weiß ich jetzt nicht, welche Unterschiede in Aussehen und Bedienung zwischen "normalen" und Popup-Fenstern bestehen. Der wesentliche Unterschied ist aber: sie können geblockt werden.

                        Gruß, Jürgen

                        1. Hallo Steel,

                          ich benutze auf meinen Seiten keine Popups und beim Surfen unterdrücke ich sie. Daher weiß ich jetzt nicht, welche Unterschiede in Aussehen und Bedienung zwischen "normalen" und Popup-Fenstern bestehen. Der wesentliche Unterschied ist aber: sie können geblockt werden.

                          Ja. Indem man JS ausschaltet. Ein PopupBlocker analysiert, soweit ich weiß, gewöhnlich Code und unterbindet/entfernt solchen, der ohne Userintaraktion Fenster öffnet. Jetzt sind diese Dinger ja teilweise auch konfigurierbar. Gut. Wenn ein User jetzt einfach generell das öffnen von Fenstern per JS unterbindet oder halt JS abschaltet, ist das nichts anderes als bei allen JS-Funktionen. Der User muß damit leben, daß einige Dinge nicht funktionieren, oder der Programmierer muß damit leben, daß die Seite von einigen Usern gemieden wird, wenn er keine Fallbacks einbaut.

                          Ein per window.open() erstelltes Fenster ist aber erstmal das gleiche wie ein per target erstelltes Fenster - Ausser dass es, je nach Browser, auch noch modifiziert werden kann.

                          --
                          "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                                - T. Pratchett