Claus Peter: Opera ändert Breite von select

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

  1. 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

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. 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="&auml;ndere Listengr&ouml;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

  2. 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

    1. 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

      1. 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

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!
        1. 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

          1. 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

            --
            MudGuard? Siehe http://www.Mud-Guard.de/
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.