x

Open Layers: Marker und Popup in Chrome und Opera


  1. Open Layers: Marker und Popup in Chrome und Opera · Hardyy (Gast) · 04.02.2014 14:57 · [flux]

    Hallo,

    in meiner Homepage habe ich eine Karte mit Marker, die beim Anklicken ein Popup mit Text und Link zeigen.
    Beides wird aus MySql ausgelesen.
    In FF und IE funktioniert alles OK.

    In Chrome und Opera erscheint aber leider nur der Link ohne Text. Statt dem Text sieht man nur einen beliebigen Buchstaben.
    Kann ich mir nicht erklären und weiß auch nicht was ich tun soll.

    Der JS-Code:

    <script␣type="text/javascript">
    
    //<![CDATA[var␣layer_tah;
    
    var␣layer_markers;
    
    //␣Position␣des␣Markers␣-␣Variablen␣aus␣PHP␣einfügen
    
    var␣map;
    var␣layer_mapnik;
    var␣album␣=␣new␣Array();
    var␣album␣=␣<?php␣echo␣json_encode($ID);␣?>;
    var␣name␣=␣new␣Array();
    var␣name␣=␣<?php␣echo␣json_encode($Name);␣?>;
    var␣m_lon␣=␣new␣Array();
    var␣m_lon␣=␣<?php␣echo␣json_encode($marker_lon);␣?>;
    var␣m_lat␣=␣new␣Array();
    var␣m_lat␣=␣<?php␣echo␣json_encode($marker_lat);␣?>;
    
    //Position␣und␣Zoomstufe␣der␣Karte
    
    var␣lon␣=␣"<?php␣echo␣$zone['zlon'];␣?>";
    var␣lat␣=␣"<?php␣echo␣$zone['zlat'];␣?>";
    var␣zoom␣=␣"<?php␣echo␣$zone['Ausschnitt'];␣?>";
    
    function␣drawmap()␣{
    
    //␣Popup␣und␣Popuptext␣mit␣evtl.␣Grafik
    
    var␣popuptext␣=␣new␣Array();
    for␣(var␣i=0;␣i<name.length;␣i++){
    popuptext[i]␣='<font␣color=green␣size=2em><b>'+name[i]+'</b><br␣/><a␣href="albenosm.php?id='+album[i]+'">Album␣ansehen<a></font>';
    }
    
    OpenLayers.Lang.setCode('de');
    
    map␣=␣new␣OpenLayers.Map('map',␣{
    projection:␣new␣OpenLayers.Projection("EPSG:900913"),
    displayProjection:␣new␣OpenLayers.Projection("EPSG:4326"),
    controls:␣[
    new␣OpenLayers.Control.Navigation(),
    new␣OpenLayers.Control.PanZoomBar()],
    maxExtent:
    new␣OpenLayers.Bounds(-20037508.34,-20037508.34,
    20037508.34,␣20037508.34),
    numZoomLevels:␣18,
    maxResolution:␣156543,
    units:␣'meters'
    });
    
    layer_mapnik␣=␣new␣OpenLayers.Layer.OSM.Mapnik("Mapnik");
    layer_markers␣=␣new␣OpenLayers.Layer.Markers("Address",␣{␣projection:␣new␣OpenLayers.Projection("EPSG:4326"),
    visibility:␣true,␣displayInLayerSwitcher:␣false␣});
    //␣Karte␣Zentrieren␣und␣Zomm-Stufe
    
    map.addLayers([layer_mapnik,␣layer_markers]);
    jumpTo(lon,␣+lat,␣zoom);
    
    //␣Position␣des␣Markers
    
    for␣(var␣i=0;␣i<m_lon.length;␣i++␣){
    addMarker(layer_markers,␣m_lon[i],␣+m_lat[i],␣popuptext[i]);
    }
    }
    //]]>
    </script>
    

    Das Ganze ist zu sehen unter: http://cz-prag.de/themaosm.php?id=3

    Weiß vielleicht jemand, was die Ursache sein könnte?

    Gruß
    Hardy


    • Re: Open Layers: Marker und Popup in Chrome und Opera · rayquaza (Gast) · 04.02.2014 15:27 · [flux]

      OT: Hat nichts mit deinem Problem zu tun, aber drück mal im FF [Strg]+[U ] und sieh dir die roten Stellen an 😉


    • Re: Open Layers: Marker und Popup in Chrome und Opera · geri-oc (Gast) · 04.02.2014 15:47 · [flux]

      Ich weiß nicht woran es liegt, aber hatte ich auch schon bei anderen Websites, wenn www. fehlt macht Chrome nichts.
      Wenn ich www. davor setze funktioniert es:


      EDIT: Hast doch recht - Marker werden nur mit Buchstaben und Link angezeigt:


    • Re: Open Layers: Marker und Popup in Chrome und Opera · maxbe (Gast) · 04.02.2014 15:49 · [flux]

      Nur mal so als Schuß ins Blaue: Nimm doch mal was anderes als "name" als globale Variable... Der Debugger von Chrome sagt mir nämlich, dass "name" kein Array ist ("album", "m_lat" z.B. hält er schon dafür). Und weil ich weiss, dass Chrome recht zickig auf Variablennamen reagiert, die schon als DOM-Elemente existieren und "name" so ziemlich überall vorkommt...


    • Re: Open Layers: Marker und Popup in Chrome und Opera · Joachim Moskalewski (Gast) · 04.02.2014 16:13 · [flux]

      Zu den Buchstaben: Das ist Dein Array "name" als String gelesen - Index der einzelnen Buchstaben. maxbe hat ansonsten Recht, nimmste einen anderen Variablennamen ist das Problem gelöst.


    • Re: Open Layers: Marker und Popup in Chrome und Opera · Hardyy (Gast) · 04.02.2014 16:53 · [flux]

      Hallo,

      vielen Dank an alle für die schnelle Antworten.

      maxbe Du hast recht. Habe andere Bezeichnung als 'name' genommen und es funktioniert!

      rayquaza - rote Stellen? Zeile 321 ist mir unklar da in 284 der div-Anfang ist und alle anderen div's abgeschlossen sind.
      Zeile 327 u. 238 ist nur der auskommentierte footer, kann ich auch ganz löschen.
      Was sind Deine Bedenken?


    • Re: Open Layers: Marker und Popup in Chrome und Opera · wambacher (Gast) · 04.02.2014 16:58 · [flux]

      Hardyy wrote:

      Was sind Deine Bedenken?

      ich nehme mal an, das seine Bedenken die Bedenken vom FF sind. 😉

      Gruss
      walter


    • Re: Open Layers: Marker und Popup in Chrome und Opera · rayquaza (Gast) · 04.02.2014 17:10 · [flux]

      Hardyy wrote:

      rayquaza - rote Stellen? Zeile 321 ist mir unklar da in 284 der div-Anfang ist und alle anderen div's abgeschlossen sind.
      Zeile 327 u. 238 ist nur der auskommentierte footer, kann ich auch ganz löschen.
      Was sind Deine Bedenken?

      Zeile 149: Da fehlt ein mindestens Leerzeichen.
      Zeile 320: Ich vermute dass das daran liegt, dass die Definitionsliste darüber (die btw etwas seltsam aussieht) nicht geschlossen ist.
      Der Kommentar wird eventuell markiert, weil innerhalb davon ein weiterer Kommentar geöffnet wird. Sollte eigentlich egal sein, aber um nichts ernsthafteres zu übersehen könntest du den Kommentar da kurz schliessen.

      Auf osm.org findet sich übrigens auch irgendwo ein "</td>" obwohl auf der Seite keine Tabelle ist 🙄

      @wambacher: Meine Bedenken sind, dass Webbrowser viel zu viel Müll akzeptieren (müssen) und sich Entwickler daran gewöhnen könnten. Dabei ist es auch mit PHP möglich, eingerückten HTML-Code zu generieren 😉


    • Re: Open Layers: Marker und Popup in Chrome und Opera · Hardyy (Gast) · 04.02.2014 17:47 · [flux]

      Danke Euch,

      mein Quelltext ist jetzt ohne rote Stellen!

      Gruß
      Hardy