Frage

Uhm Ich bin mir nicht sicher, ob jemand dieses Problem
gestoßen eine kurze Beschreibung ist auf IE6 jede <select> Objekte über andere Artikel angezeigt zu bekommen, auch divs ... was bedeutet, wenn Sie Lust haben Javascript Effekt, der einen div zeigt, die am Anfang von allem (zB sein soll ist: Leuchtkasten, Multibox etc .. ) onclick eines bestimmten Elements und div überlappt einen <select> Ihres div get angezeigt werden, als ob sie unter dem <select> ist [in diesem Fall ein max und minimalen z-index nicht funktioniert]

Ich habe versucht, googeln und fand die iframe Shim Lösung
aber ich wollte ein paar ziemlich saubere Alternativen oder besser noch hat jemand eine bessere Lösung gefunden? da das Verfahren Iframes verwendet wird um 130 MB RAM unter Verwendung könnte Arme Maschinen verlangsamt

War es hilfreich?

Lösung

Sie müssen nicht jedes select verstecken mit einer Schleife. Alles, was Sie brauchen, ist eine CSS-Regel wie:

* html .hideSelects select { visibility: hidden; }

Und das folgende JavaScript:

//hide:
document.body.className +=' hideSelects'

//show:
document.body.className = document.body.className.replace(' hideSelects', '');

(Oder können Sie Ihre Lieblings addClass / removeClass Implementierung verwenden).

Andere Tipps

Es ist ein Plugin für jQuery genannt bgiframe , dass die iframe Methode ganz einfach macht, zu implementieren, .

persönlich als Web-Entwickler, bin ich zu dem Punkt, wo ich über die Benutzererfahrung in IE6 nicht mehr kümmern. Ich werde es so nah an „richtigen“ wie möglich machen machen, und stellen Sie sicher, es ist funktional, aber so weit wie Geschwindigkeit geht, zu schlecht. Sie können aktualisieren. IE7 (wenn auch noch recht langsam, im Vergleich zu jedem anderen Browser) hat seit 2 Jahren gewesen (fast auf den Tag!). IE8 wird aus kurz sein. Firefox ist für jede Plattform verfügbar. Safari ist auch eine Option (und super schnell). Opera ist für die meisten / alle Plattformen zur Verfügung.

IE6 wurde vor 7 Jahren veröffentlicht in über. IMHO, gibt es keinen Grund, es immer noch, andere als faul Benutzer und inkompetent IT-Abteilungen mit sein (oder, wenn Sie einen Web-Entwickler sind).

, falls jemand interessiert ist, hier einig IE Shim-Code.

* html .shimmed {
    _azimuth: expression(
        this.shimmed = this.shimmed || 'shimmed:'+this.insertAdjacentHTML('beforeBegin','<iframe style="filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);position:absolute;top:0px;left:0px;width:100%;height:100%" frameBorder=0 scrolling=no src="javascript:false;document.write('+"''"+');"></iframe>'),
        'inherit');
}

ref: dieser Kern von subtleGradient und diese Beitrag von Zach Leatherman

Vor der Dropdown-Liste auf IE7 war ein „Fenster-“ Steuer was bedeutet, dass sie als Kontrolle direkt von Windows-statt der Browser es Synthese gemacht wurde. Als solches war es nicht möglich, es z-Indizierung gegen andere synthetisierte Kontrollen zu unterstützen.

Um über eine DDL angezeigt werden, müssen Sie eine andere Fenstersteuerung, wie IFRAME verwenden. Sie können auch eine wenig bekannte IE-only Funktion namens window.createPopup () verwenden, die im wesentlichen ein Popupfenster macht. Es hat seine Grenzen, wie unaufhaltsam Klick-out, aber sie sind tatsächlich ein bisschen hilfreich, wenn Sie ein Hover-Menü-System aufbauen.

: http:

Die einfachste und eleganteste Lösung für diesen lästigen IE Fehler bei gefunden // docs. jquery.com/Plugins/bgiframe mit jQuery.

erreichte ich zu diesem Schluss, nachdem für 2 Tage versucht, es mit WebSphere Portal / Portal-Anwendungen funktioniert, wo alles dynamisch ist, einschließlich dem Fly-Over-Menü.

Es gibt auch die activex Methode, die ich zu erforschen fange. Es erfordert bedingten Code Erstellen eines ActiveX-Steuerelement anstelle einer Auswahlbox für den IE6 zu verwenden. Es gibt eine Demo Skript der Technik zeigt, die genauer diskutiert hier .

Update: es scheint, dass MS Office für die Active-X Steuerung benötigt wird auf dem Computer des Benutzers zu sein. Theoretisch könnte es möglich sein, dass irgendwo einschließen, irgendwie, aber das ist viel chaotischer zu bekommen.

Ich weiß, dass viele Menschen ihre eigenen Tipps vorgeschlagen, aber in meinem Fall, wähle ich einfach nur verstecken, wie die unten mit Jquery.

$(':date').dateinput({
    format: 'dd/mm/yyyy',
    onBeforeShow: function(event) {
        $('select').hide();
    },
    onHide: function(event) {
        $('select').show();
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top