You are not logged in.

wcf.regNote.message

Lord Potter

Beginner

  • "Lord Potter" started this thread

Posts: 20

  • Send private message

1

Saturday, November 17th 2007, 1:33pm

Frage zu getElementById() und OnMouseOut/Over

Ich hab zwei Fragen:

1) zu document.getElementById()
Und zwar hab ich das Problem, dass ich etwas mittels AJAX nachlade und dieses dann in einem div-Container ausgebe (mittels document.getElementById()). Nun ist in der nachgeladenen Seite auch JavaScript enthalten, z.B. alert("Test"); (natürlich in <script> tags). Dies wird aber nicht ausgeführt. Kann man das ändern, denn ich will ja, dass es ausgeführt wird. Hat da jemand eine Idee??


2) zu OnMouseOver/Out
Ich habe ein Formular mit einem Datumsfeld und wenn der User darauf klickt, erscheint ein Kalender. Nun möchte ich aber, dass der Kalender nach z.B. 3 Sekunden verschwindet, wenn der User nicht mehr ein Datum raussucht bzw 3 Sekunden oder mehr nicht mehr auf dem Kalender war (onMouseOut). (nach dem Anklicken von einem Datum darf der auf keinen Fall verschwinden!)
Ich habe es auch schon geschafft, einen Countdown zu erstellen, der den Kalender verschwinden lässt, aber nun möchte ich, dass der Countdown gestoppt wird, wenn der User nach 2 Sekunden wieder auf den Kalender geht. Sollte er dann wieder vom Kalender weggehen, sollte der Countdown wieder starten usw. Wie mach ich das? So schwer stell ich mir das nicht vor, nur steh ich grad aufm Schlauch.

Für Hilfe wäre ich sehr dankbar!

Artanis

Beginner

Posts: 22

Location: VR

Occupation: Systementwickler

  • Send private message

2

Tuesday, September 9th 2008, 10:48am

Die Antwort kommt vlt ein bisl sehr spät, aber vlt interessiert es noch jemand anderen...

Zu ersten Frage:
Von deinem phpscript kriegst du in etwa sowas
"<div>irgendeinlangerhtmlinhalt<script>alert('blub')</script>nochvielmehrhtmlinhalt</div>"

Versuchs dan mal damit:
dein ajax-response liegt in dem Beispiel in der variable ajax.

var script = ajax.split("<script>");
script = script[1].split("</script>");
script = script[0];
eval(script);

Die 4 Zeilen tun nichts anderes, als alles zwischen<script> und </script> zu finden und durch eval() zu jagen.

eval führt Text als Jaavscriptbefehle aus
z.B. geht sowas hier: eval("alert('1');alert('2')");


Zur zweiten Frage:
Sowas in der Art hab ich schonmal gemacht.
Leg dir irgendwo einen timer an, der erstmal nichts tut.

var timer;

Sobald Aktionen ausgeführt werden (rollOver, rollOut etc..) das hier:

onMouseOut='timer = window.setTimeout("ausblenden()",3000);'
// Deine Funktion, die aufgerufen werden soll, heißt hier ausblenden()

Zumindest hab ich das in meinem damaligen Projekt so in etwa gemacht.
:cbcool:

wcf.user.socialbookmarks.titel