WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   JavaScript: onselect im Internet Explorer (http://www.wcm.at/forum/showthread.php?t=205258)

Flink 08.12.2006 21:31

JavaScript: onselect im Internet Explorer
 
Ich habe ein Problem mit der onselect Eventfunktion in einer Select-Box im Internet Explorer. Die dabei aufgerufenen JavaScript Funktion wird nur nach einer gewissen Pause von einigen Sekunden ausgeführt. Wenn man zu schnell hintereinander daraufklickt, tut sich nichts. Im Firefox unter LINUX läuft es problemlos. Die dahinterliegende Funktion verbindet sich über AJAX auf den Server und lädt Inhalte entsprechend der Auswahl in der Select Box nach.

http://metisse.de/test/index.php?id=100

Was ist hier falsch? Wie kann man es erreichen, daß die onselect immer sofort wie im FF ausgeführt wird?

Code:

<select id="pid2" onchange="fillSelect(this, 3,1);"><option value="0"></option></select>
<select id="pid3" onchange="fillSelect(this, 0,0);"><option value="0"></option></select>


jak 09.12.2006 12:16

Ich habe mit dem IE7 bei den selects kein Problem, allerdings scheint die Ladezeit beim IE generell höher sein - hast du irgendwelche Sondersachen für den IE in deinem TypoScript?

Der Grund wieso bei zu schnellen Wechseln im Select nichts passiert liegt daran, daß die Funktion fillSelect() dafür sorgt das sie nicht zwei mal gleichzeitig ausgeführt werden kann:
Code:

if (inAction == true)        {
        return false;
}
inAction = true;
...
inAction = false;
return true;

Ich nehm' mal an, daß sonst Probleme auftreten würden.

jak

Flink 09.12.2006 20:50

Zitat:

Original geschrieben von jak
allerdings scheint die Ladezeit beim IE generell höher sein - hast du irgendwelche Sondersachen für den IE in deinem TypoScript?

Nein, zumindest nicht in dieser Funktion. Aber im xAjax-Code aus dem xajax Project wird abhängig vom Browser ein anderer Code ausgeführt.

Zitat:

Original geschrieben von jak
Der Grund wieso bei zu schnellen Wechseln im Select nichts passiert liegt daran, daß die Funktion fillSelect() dafür sorgt das sie nicht zwei mal gleichzeitig ausgeführt werden kann:

Das ist auch ohne diese Prüfung, ob das Skript noch ausgeführt wird, genauso abgelaufen. Es sollte verhindert werden, daß die Funktion 2mal gleichzeitig ausgeführt wird.
Es ist aber seltsam, daß ich beim IE6 einige Sekunden warten muß. Ob der IE6 beim Setzen einer innerHTML mit größeren Text mit Bildern so langsam ist?

jak 10.12.2006 16:15

Der IE6 versteht bei selects kein innerHTML, wie es beim IE7 ist weiß ich nicht.
Auf jeden Fall kann man bei FF ein select verändern indem man innerHTML verändert, beim IE (6, k.a. ob auch 7) muß mann add(new Option()) verwenden, was bei größeren Selects klarerweise länger dauert, die Selects auf deiner Seite sind aber eh nicht sehr groß.

jak


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag