Wieder einmal musste ich mich über den Internet Explorer ärgern, da er für eine https-Seite ständig über "unsichere Elemente auf der Seite" schimpft, obwohl alle Ressourcen auch als https abgerufen werden. Der IE hatte ein Problem mit CSS-Anweisungen (display, position). Aufruf als https-Seite ==> Alles i.o. keine Sicherheits-Warnung.
<html>
<head>
<title>https-Test im IE</title>
</head>
<body>
<h3>TEST sichere https-Verbindung im IE
<div class="test">TEST sichere https-Verbindung im IE</div>
</h3>
</body>
</html>
Nun zum Problem, auf das ich gestoßen bin, beim Bau einer aufklappbaren Horizontal-Navigation.
<html>
<head>
<title>https-Test im IE</title>
<style type="text/css">
div.test {
display: none;
position: absolute;
left:1em;top:1em;
}
</style>
</head>
<body>
<h3>TEST sichere https-Verbindung im IE
<div class="test">TEST sichere https-Verbindung im IE</div>
</h3>
</body>
</html>
NUN wirft der IE8 eine Sicherheits-Fehlermeldung, ob man denn wirklich sichere und unsichere Objekte gleichzeitig anzeigen wolle.
Lösung für meine Navigation
Meine Navigation wird per Javascript aufgebaut als ein Element und dann ins DOM eingefügt (das JavaScript wird als externe Ressource nachträglich geladen).
Idee-1: die Style-Angaben nicht im CSS schreiben, sondern jetzt durch das js setzen lassen. :-(( geht nicht, da der IE8 den Zustand "display:none" plus eine "position"-Angabe dann prüft, wenn alles ins DOM eingefügt wird und wieder die Fehlermeldung wirft. geht nicht
Idee-2: das Javascript baut das Menü ein. Das "display:none" setze ich bereits im CSS, damit es möglichst früh wirkt und die aufgeklappten Navis noch nicht zu sehen sind (visibility:hidden geht nicht, da solche Elemente zwar nicht sichtbar sind, aber bereits Platz wegnehmen, und selbst bei position:irgendwas evtl dazu führen, dass darunterliegende Elemente nicht mehr klickbar wären).
Das "position:absolute" setze ich jetzt erst in der ersten hover-Funktion, die das Menüelement auf sichtbar stellt und gleichzeitig positioniert. In diesem Fall meckert der IE8 nicht. funzt