Hi!
Das hat er zugegebenermassen erstmal verschwiegen. Ich nehme an, er moechte ein Seite modifizieren nachdem sie geladen wurde. Jedenfalls verstehe ich das gerade so. Er moechte also einen Eventhandler einfuegen, der auf den existierenden Code reagiert. Da wuerde ich doch mit timern arbeiten, die das Element abfragen.
Zugegebenermaßen, ja das habe ich Anfangs verschwiegen. Ich wusste nicht ob das so wichtig ist. Ja, mein Plan ist es durch ein Userscript (vielleicht sagt euch das ja was) eine JavaScript Datei einzubinden. Darum geht es aber nicht, es geht um den Inhalt dieser Datei, die also praktisch wie eine ganz normale JavaScript Datei eingebunden ist. Den JavaScript Code kann ich ja durch JavaScript nicht ändern ;)
Das Problem ist im Prinzip noch das gleiche:
function activate_check() {
while(!document.getElementById('bag')) {
}
machwas();
}
document.getElementById('link1').firstChild.setAttribute("onclick", "AjaxWindow.show('beispielwindow'); activate_check();");
Wenn jetzt auf den Link innerhalb des Div's 'link1'
geklickt wird, wird die Schleife aktiviert und - führt zu einer Warnung, dass das Script nicht reagiert oder auf eine Eingabe wartet. Wundert mich nicht, denn es dauert kurz, bis das Elemnt 'bag'
vorhanden ist, da erst noch Informationen ausgelesen werden müssen. In der Zeit lastet die while-Schleife Mozilla aus. Habe ich einen Fehler gemacht? Gibt es eine Alternative zum Checken? Ich schreibe zur Verständlichkeit nochmal die Aktionen, die ausgeführt werden, chronologisch auf:
1. Seitenaufbau
2. Etwa 3 Sekunde nach Ladeanfang (spätestens kurz vorm Ende des Ladens) wird durch GreaseMonkey ein Script in die Seite eingebunden (sprich: <script src="http://meinehomepage.de/js/main.js" type="text/javascript"></script>
3. Der Benutzer des Userscriptes klickt auf einen bestimmten Link, der durch das eingebundene JavaScript geändert wurde, von <a onclick="AjaxWindow.show('beispielwindow');" href="[...]">Beispiel</a>
auf <a onclick="AjaxWindow.show('beispielwindow'); activate_check();" href="[...]">Beispiel</a>
<Problemstelle>
4. Der Rahmen eines INTERNEN JavaScript Fensters (!!!Kein neues Browser Fenster!!!) wird geladen, Daten werden abgerufen.
5. Ein Div wird nach unbestimmter Zeit (= nachdem die Daten ausgelesen wurden) sichtbar, darin die ausgelesenen Elemente.
6. Über diesem Div sollen durch die Funktion machwas() einige Elemente eingefügt werden.
</Problemstelle>
7. Beim Klick auf den INTERNEN Schließen-Knopf, der per onClick-Handler gesteuert wird, soll das INTERNE JavaScript Fenster und die von meinem Script eingefügten Elemente wieder entfernt werden.
Ich schildere nochmal das Problem, dass ich durch <Problemstelle> gekennzeichnet habe: Es soll, sobald die Daten abgerufen sind und der Div mit diesen "Daten" erscheint (das passiert nach unbestimmter Zeit!) etwa zeitgleich mit dem Erscheinen eine Funktion aufgerufen werden (die dann einige andere Elemente einfügt, was aber kein Problem ist).
Ich hoffe so versteht jeder mein Problem :)
Grüße, Knight
--
ie:{ fl:) br:^ va:) ls:~ fo:| rl:( n4:& ss:| de:> js:) ch:| sh:} mo:} zu:(