Opera ändert Breite von select
Claus Peter
- javascript
0 MudGuard0 Maxx0 Claus Peter0 Detlef G.0 Claus Peter0 MudGuard
Hallo,
mittels einem script ändere ich die Anzahl der sichtbaren Listenelemente eines multiselects zwischen 5 und pSelect.options.length. Soweit, so gut. Der derzeit aktuelle Opera stellt allerdings danach das select nicht mehr zu 100% Breite in der Tabelle dar, Initialisierung mit
<pSelect id="L1" style="width:100%" multiple size="5"....
sondern nur noch in der Breite der Einträge. Opera 7.11 sowie IE und Mozilla funktonieren.
Debug mittels Javascript
alert(pSelect.style.width); // zeigt 100% an!!!!
oder
pSelect.style.width='100%';
bringt mich auch nicht weiter.
Was soll ich tun? Auf eine bereinigte Version warten oder ist es mein Fehler?
Vielen Dank
cp
Hi,
mittels einem script ändere ich die Anzahl der sichtbaren Listenelemente eines multiselects zwischen 5 und pSelect.options.length. Soweit, so gut. Der derzeit aktuelle Opera stellt allerdings danach das select nicht mehr zu 100% Breite in der Tabelle dar, Initialisierung mit
<pSelect id="L1" style="width:100%" multiple size="5"....
Um welche Sprache handelt es sich?
(X)HTML kann es nicht sein, da gibt es kein pSelect-Element.
sondern nur noch in der Breite der Einträge.
Opera 7.11 sowie IE und Mozilla funktonieren.
Also daß der IE funktioniert, halte ich für eine sehr gewagte Aussage.
Debug mittels Javascript
alert(pSelect.style.width); // zeigt 100% an!!!!
Wo wird das Javascript-Objekt pSelect wie definiert?
cu,
Andreas
Hi Andreas,
ja, da ist mir beim editieren der Nachricht ein Fehler passiert, das Select wird natürlich so definiert:
<select id="L1" style="width:100%" multiple size="5"....
Der Aufruf folgt aus einem benachbarten Element..
<input type="button" value="ändere Listengrösse" onClick="javascript:SetSelectSize('L1')">
und schlägt hier auf:
function SetSelectSize(iId)
{
var pSelect;
pSelect = document.getElementById(iId);
if(null != pSelect)
{
if(pSelect.size > 5) pSelect.size = 5;
else pSelect.size = pSelect.options.length < 5 ? 5 : pSelect.options.length;
alert(pSelect.style.width); // ergibt 100%, aber die Liste ist schmal
// workaround, der zwar die Listenbreite wieder auf 100% bringt..
pSelect.style.width='10%';
alert(pSelect.style.width); // <- aber deswegen nicht so schön ist
pSelect.style.width='100%';
}
}
Sorry, wenn das am Anfang nicht so klar war.
Viele Grüße
cp
Hallo Peter,
<pSelect id="L1" style="width:100%" multiple size="5"....
Versuche es mal mittels: style="width:100%; display:block;"
Ich hatte ein ähnliches Problem im 7.11 konnte es jedoch nicht lösen. Die dynamische Befüllung in Verbindung mit einer festen Breite des <select> sollte im 7.23 aber funktionieren. Oder macht 7.5 wieder etwas anderes?
http://www.maxx4u.de/eigene2.html?zeilen=4&kategorie=1
Grüße,
Jochen
Versuche es mal mittels: style="width:100%; display:block;"
Hallo Jochen,
danke für Deinen Hinweis, aber leider ändert es nix.
Wenn ich dagegen im Script nach Änderung von
pSelect.size = pSelect.options.length;
noch
pSelect.style.width='10%';
alert(pSelect.style.width);
pSelect.style.width='100%';
aufrufe, dann stimmt die Breite wieder. Was da stört, ist das alert. Das nervt auf Dauer. Zuweisung des Werts an eine Dummyvariable bringt aber leider nichts.
Gruss
cp
Hallo Claus Peter
aufrufe, dann stimmt die Breite wieder. Was da stört, ist das alert. Das nervt auf Dauer. Zuweisung des Werts an eine Dummyvariable bringt aber leider nichts.
Das könnte ein Hinweis dafür sein, dass nicht die Zuweisung dieser Variablen sondern die durch das alert entstehende Zeitverzögerung oder die nach dem Alert notwendige Aktualisierung des Bidschirminhaltes dafür sorgt.
Lass doch mal zum Test ein alert('OK') ausgeben.
Bzw. versuche doch einmal Folgendes:
erst
pSelect.style.width='10%';
dann die Änderung von
pSelect.size = pSelect.options.length;
und dann wieder
pSelect.style.width='100%';
Auf Wiederlesen
Detlef
Hallo Detlef,
derzeit wird die Seite nur nach einem "alert" korrekt dargestellt. Wobei egal ist, was da wiedergegeben wird. Es hängt demnach offenbar an der Aktualisierung des Bildschirminhalt unter Opera 7.23.
Vielen Dank für Deinen Tip, dann warte ich mal auf eine neue Version des Browsers.
cp
Hi,
Es hängt demnach offenbar an der Aktualisierung des Bildschirminhalt unter Opera 7.23.
Vielen Dank für Deinen Tip, dann warte ich mal auf eine neue Version des Browsers.
Dir ist bekannt, daß es bereits eine neuere Version als 7.23 gibt? Aktuell ist 7.52
cu,
Andreas