Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
JS Problem mit Opera - onload Event vs. aufruf im body tag [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
JS Problem mit Opera - onload Event vs. aufruf im body tag


 
Troublegum
16-01-2003, 14:55 
 
Hi Leute,


ich will, dass die Funktion activate() sofort aufgerufen wird.
Dazu habe ich sie im body tag aufgerufen...


<script type="text/javascript">
activate(document.formname);
</script>


Die Funktion activate() greift auf dieses Formular zu. Das Problem ist, dass vor dem Formular sehr viel Text steht.
Im IE klappt das angehängte Beispiel. Im Opera 6.0 leider nicht. Rufe ich die Funktion activate() allerdings im onload Attribut des Body Tags auf (<body onload="activate(document.formname);">), dann klappt es. Allerdings wird die Funktion dann nicht sofort aufgerufen sondern erst, wenn die komplette seite geladen ist (auch mit bildern etc.).

ich will onload wenn möglich nicht verwenden, weil das länger dauern kann, wenn z.b. die bilder lange geladen werden.

hat jemand ne idee, woran das liegen kann und wie ich es umgehen kann?

 
wahsaga
16-01-2003, 15:44 
 
Die Funktion activate() greift auf dieses Formular zu. Das Problem ist, dass vor dem Formular sehr viel Text steht.
Im IE klappt das angehängte Beispiel. Im Opera 6.0 leider nicht.
was genau ist das problem? wie äussert sich "klappt nicht" - fehlermeldungen etc. ?
was soll die funktion activate() bewirken?

 
Troublegum
16-01-2003, 17:05 
 
Was sie bewirkt steht doch im Quelltext:
<script type="text/javascript">
function activate(form)
{
var status = form.bestimmtes_feld.value;

// activate
if(status=='false' && form.anderes_feld.value!='')
{
form.bestimmtes_feld.value='true';
form.bestimmte_checkbox.checked=true;
return true;
}
// deactivate
else
{
form.bestimmtes_feld.value='false';
form.bestimmte_checkbox.checked=false;
return false;
}
}
</script>

Das Problem ist: Es kommt keine Fehlermeldung.
der Wert im Formular wird nicht verändert (das Feld und die Checkbox).

 
wahsaga
16-01-2003, 22:11 
 
sorry, den gezippten anhang konnte ich heute mittag auf der arbeit nicht runterladen.

also bei mir funzt das ohne probleme im opera 7b2...

 
Troublegum
16-01-2003, 22:44 
 
Hm, dass es im Opera 7.0 b2 geht hab ich schon rausgefunden. Aber anscheinend geht es nicht ganz so zuverlässig im Opera 6.0.x

 
wahsaga
16-01-2003, 22:50 
 
also opera 6.04 hab ich auch noch mal eben ausprobiert, funktioniert ebenso problemlos... nachdem ich javascript wieder angeschaltet hatte - sicher dass der fehler bei dir nicht zufällig daran lag? hab's nämlich auch erst nicht gemerkt, dass es aus war ;-)

 
Troublegum
16-01-2003, 22:57 
 
Nein, daran liegt es nicht, denn wenn ich nachdem die Seite geladen ist, auf die Checkbox klicke und damit die Funktion aufrufe, dann verändert die Funktion die Werte im Formular sofort.

Nur halt nicht, wenn sie gleich am Anfang aufgerufen wird :(
Ich habe das jetzt nur im Opera 6.0.1 Build 1041 getestet.

Ich vermute, es liegt daran, dass vor dem Formular so viel Text ist.
Wenn ich den nämlich kürze oder weglasse, dann geht es.
Je mehr Text, desto eher geht es nicht. Vielleicht spielt auch der PC des Clients ne Rolle, sprich wie viel RAM der hat oder so? :dontknow:
Kann ja sein, dass nem High-End PC der viele Text nichts ausmacht.

hm, die Funktion kann die Formularwerte anscheinend erst verändern, wenn die Seite komplett geladen ist. :dontknow:

 
wahsaga
17-01-2003, 00:01 
 
hm, die Funktion kann die Formularwerte anscheinend erst verändern, wenn die Seite komplett geladen ist.
dann versuch doch mal sie per onLoad im body-tag zu triggern...


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:11 Uhr.