2009-06-03 2 views
0

Das alles begann, als ich eine Möglichkeit suchte, einige Inhalte zu verbergen, wenn nicht angefordert. Ich hatte bereits die link: hover-Methode für einige Tooltips verwendet und wollte einen Sprung machen, um es für diesen Zweck anzupassen.Ein Iframe in einem Anker-Tag. Ja ich weiß. Ein Problem mit dem IE-Rendering

Ich vermeide die Verwendung von JS, weil die Natur meiner Website sich auf Mobiltelefonen eignet - und sogar wo JS unterstützt wird, ist das Laden bemerkbar und kann, wenn es fehlschlägt, eine Website frustrierend machen benutzen.

Also, ich habe einen iframe in einem Div-Tag in einem Anker-Tag mit einem Timestamp-generierten URL. Tatsächlich hat das Verstecken des iframe dazu geführt, dass es nicht im IE geladen wurde, also habe ich stattdessen seine Höhe auf 0 gesetzt, bis es sich im "besucht" -Zustand befindet. Ursprünglich habe ich nur das Div verwendet, aber die Linkattribute wurden übernommen, also habe ich den Frame eingeführt. In FF funktionierte das wie erwartet (warum würden Sie den Link-Status auf die Elemente eines Frames anwenden, in dem der Link nicht liegt?), Die weitere Frage: "Warum würden Sie jemals einen Frame in ein Anchor-Tag einbinden? ? "ist gültig genug)), aber im IE stört der" verknüpfte "Zustand teilweise das Funktionieren des Rahmens.

Der Cursor ist normal, aber wenn Sie versuchen, auf etwas im Rahmen zu klicken, wird der normale urlanzeigende Zeiger kurz angezeigt. Links innerhalb des Rahmens funktionieren gut - aber Formen sind knifflig. Sie können Ihre Einfügemarke nur in einem Formularfeld beim zweiten Klick innerhalb des Rahmens festlegen. Der erste Klick scheint den Fokus in den Rahmen zu setzen; danach funktionieren Klicks in die Formularfelder gut genug. Der letzte Vorbehalt ist, dass nichts mit der Maus innerhalb des Iframes ausgewählt werden kann, einschließlich aller Texte, die der Benutzer in das Formularfeld geschrieben hat.

Ich habe mit Z-Indizes vergeblich gespielt, und auch versucht, die Sichtbarkeit des Links selbst zu verstecken, wenn besucht (was funktionierte, aber nicht das Ich-immer noch-gehen-zu töten -pretend-Ich-bin-ein-link Verhalten im IE

Gedanken

Relevante Code:.? html:

<a id="t-l" href="#<?php 
echo time(); 
?>a" class=hidebox>save/share<div><iframe src="addtoany.php?pageID=1962460927" frameborder=0></iframe></div></a> 

CSS:

.hidebox {} 
.hidebox iframe {height: 0px; width: 300px; background-color:#393242;} 
.hidebox:visited {} 
.hidebox:visited div {width:300px; height:400px; padding: 10px 0px 0px 10px;} 
.hidebox:visited iframe {height: 400px; width: 285px; border: 0px solid #393242; margin: 0px auto 0px auto;} 
+0

Sie haben eine große Menge an Beschreibung zur Verfügung gestellt, aber könnten Sie tatsächlich Code zur Verfügung stellen, so ist es für den Rest von uns klar, was passiert –

+0

Ich habe die relevanten HTML und CSS hinzugefügt. –

Antwort

1

Sie sollten keine Blockelemente innerhalb von Inline-Elementen verschachteln und css für Dom-Manipulationslogik verwenden. Warum nicht mit einer JavaScript-Lösung gehen? Dies ermöglicht Ihnen, ein korrekt strukturiertes Dokument und die gewünschte Funktionalität zu haben, ohne sich auf Browser-Macken zu verlassen.