s7mahess
Goto Top

Jquery onclick.toggle und css display none funktionieren nicht zusammen. Suche Lösung.

Ich habe wie unten dargestellt folgenden Code bei mir auf der Seite.

Das Problem ist wenn ich die Divbox #map per CSS auf "style=display: none;" stelle wird sie mir wie gewünscht nicht angezeigt, aber nach dem betätigen des Schalters, wird der inhalt des iframes nicht vollständig geladen.
Was muss ich zusätzlich noch eintragen damit die Karte richtig geladen wird?

Danke im Vorraus,

Martin

Das Funktioniert: (aber die Karte soll beim Laden der Seite erstmal versteckt sein)

  <p>
    <input type="button" value="Karte Zeigen/Verstecken" onclick="$('#map').toggle('slow')" />  
  </p>
<div id="map">  
  <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openstreetmap.org/export/embed.html?bbox=11.58243,50.92398,11.59812,50.93499&amp;layer=mapnik&amp;marker=50.92955,11.58967" style="border: 1px solid black">  
  </iframe>
  <br />
  <small>
    <a href="http://www.openstreetmap.org/?lat=50.929472&amp;lon=11.5897625&amp;zoom=17&amp;layers=M&amp;mlat=50.92944&amp;mlon=11.58976">Größere Karte anzeigen</a>  
  </small>
</div>

Das funktioniert nicht mehr: (Bild der Karte wird nicht geladen)

  <p>
    <input type="button" value="Karte Zeigen/Verstecken" onclick="$('#map').toggle('slow')" />  
  </p>
<div id="map" style="display: none;">  
  <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openstreetmap.org/export/embed.html?bbox=11.58243,50.92398,11.59812,50.93499&amp;layer=mapnik&amp;marker=50.92955,11.58967" style="border: 1px solid black">  
  </iframe>
  <br />
  <small>
    <a href="http://www.openstreetmap.org/?lat=50.929472&amp;lon=11.5897625&amp;zoom=17&amp;layers=M&amp;mlat=50.92944&amp;mlon=11.58976">Größere Karte anzeigen</a>  
  </small>
</div>

Content-ID: 179084

Url: https://administrator.de/contentid/179084

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

nxclass
nxclass 18.01.2012 um 08:28:06 Uhr
Goto Top
Morgen,

das 'anzeigen verstecken' ist nur eine 'Anzeige Sache' und wird vom Browser und seinem Cache geregelt. Ich würde an deiner stelle lieber das IFRAME ganz löschen und wieder einfügen. Das ist mit JQuery auch fix umgesetzt.

EDIT: es gibt natürlich immer die Möglichkeit auf dem IFRAME ein reload() durchzuführen.
s7mahess
s7mahess 18.01.2012 um 08:35:35 Uhr
Goto Top
könntest du mir ein Beispiel geben wie. es sind meine ersten krabbelversuche mit jquery.

Danke
nxclass
nxclass 18.01.2012 um 13:19:50 Uhr
Goto Top
ein Beispiel:
/* Iframe in den div einfügen ( id Attribut nicht vergessen) */
$('#map').append('<iframe id="iframe" ... />');  

/* Iframe wieder entfernen */
$('#iframe').remove();  

den reload: (da bin ich mir jetzt nicht ganz sicher)
document.getElementById('iframe').location.reload();  
s7mahess
s7mahess 24.01.2012 um 15:47:05 Uhr
Goto Top
Nach 6 Tagen rätseln bin ich immernoch net schlauer warum display none das laden verhindert.

Habs jetzt damit gelöst

function toggle(obj) {

	var el = document.getElementById(obj);

	el.style.visibility = (el.style.visibility != 'hidden' ? 'hidden' : 'visible' );  
        el.style.position = (el.style.position != 'fixed' ? 'fixed' : 'relative' );  

}
nxclass
nxclass 25.01.2012 um 08:12:00 Uhr
Goto Top
immernoch net schlauer warum display none das laden verhindert.
Wenn Du dem Browser sagst, er soll ein IFrame (was ja eine andere Webseite ist) nicht anzeigen soll - warum sollte er sich die mühe machen diese in den Cache zu laden.
Man könnte das auch als Schutz sehen, denn wenn Du ein IFrame mit bösem Javascript unsichtbar für den Benutzer lädst (bzw. unsichtbar für den Webseiten Betreiber - ich sag nur 'Injections'), könnte man alle Eingaben auf der Webseite mitloggen.

Was ist mit dem JS Beispiel - funktioniert das nicht ?
s7mahess
s7mahess 25.01.2012 um 08:35:13 Uhr
Goto Top
Wie schon erwähnt befinde ich mich am anfang von jquery und hab deine lösung net hinbekommen face-sad

aber meine funktioniert ja nu.

Siehe cms.rz.uni-jena.de/ifa/homepage