Variable "im Betrieb" ändern
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
ablauf
aufruf
ausgeben
beispiel
code
dank
datei
frage
glauben
http
laden
laufenden betrieb
problem
quellcode
server
test
text
variable text
variablen text
zugriff
-
<body> <script> var text="hallo"; window.setTimeout("alert('"+text+"')",5000); </script> </body>
Ich möchte der Variablen text, während ich die Homepage aufruf, einen neuen Wert zuweisen. Also im laufenden Betrieb.
Also die Seite hier öffnen : http://dapizzafressa.lima-city.de/test.html und innerhalb der 5 Sekunden Zeit der Variablen text einen neuen Wert zuweisen, ohne die Seite neu zu laden.
Geht das und wenn ja wie ?
Grüße dapizzafressa
PS: Ich möchte das ganze per Firefox lösen, wenn möglich -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
also bei mir funktioniert das auch und der Code sieht ok aus ...
Dass der Code geht weiß ich selber, ich hab ihn ja geschrieben. Allerdings beantwortet das nicht im Ansatz meine Frage.
Ich mach mal ein Beispiel:
Ich möchte, dass das Alert-Fenster nicht "hallo" sagt sondern zB "Ich grüße dich". Dazu möchte ich allerdings nicht das Dokument selber ändern, sondern während ich die Seite aufruf der Variablen einen neuen Wert zuweisen
Beitrag geändert: 19.8.2008 10:21:56 von dapizzafressa -
achso sry, da hab ich wohl viel zu viel überflogen ist ja auch noch früh am morgen ;)
wie willst du die denn ändern können (mit einen Textfeld oder wie) ? -
Wie ich die ändern will weiß ich ja nicht, deswegen frag ich ja
Ich möchte den Inhalt der Variablen halt irgendwie ändern, ohne die Seite neu laden zu müssen. -
Ich versteh das Prob nicht ganz.
Kannste doch einfach mit text = 'Moinmoin'; ersetzen. Oder willste, dass der User selbst den Textangeben kann oder, dass die daten per Ajax aus einer XML-Datei geholt werden und zum Beispiel abhängig von einem Cookie etwas anderes ausgegeben wird? -
Ne, ich möchte einfach, ohne die Seite (http://dapizzafressa.lima-city.de/test.html) zu verändern der Variable text einen anderen Wert zuweisen.
Und da hab ich gefragt ob das geht und wenn ja wie.
Es könnte ja zB ein Plugin für Firefox geben oder irgendetwas dementsprechendem.
Also nochmal: Ich möchte die Seite nicht verändern, ich such eine Möglichkeit, die Variable von aussen zu ändern zB mithilfe eines Plugins oder wie auch immer ;) -
Ne, ich möchte einfach, ohne die Seite (http://dapizzafressa.lima-city.de/test.html) zu verändern der Variable text einen anderen Wert zuweisen.
Und da hab ich gefragt ob das geht und wenn ja wie.
Es könnte ja zB ein Plugin für Firefox geben oder irgendetwas dementsprechendem.
Also nochmal: Ich möchte die Seite nicht verändern, ich such eine Möglichkeit, die Variable von aussen zu ändern zB mithilfe eines Plugins oder wie auch immer ;)
Firefox: Firebug (o: Kannste im laufenden betrieb den ganzen Quellcode ändern :p
Ich glaube was du suchst ist eine möglichkeit, praktisch im laufenden betrieb ein "Eingabefeld" erscheinen zu lassen, wo du dann deinen neuen Text eingibst? Wenn dem so ist probier mal:
<body> <script> var text="hallo"; text = prompt("Neuer Text:", text); window.setTimeout("alert('"+text+"')",5000); </script> </body>
Ich hoffe, das hilft!?
-
Firebug schau ich mir mal an, bin gespannt, was das kann ;)
Und nein, ich möchte kein prompt in meinen Quellcode einbaun. Wie ich oben erwähnte, soll die Datei eben nicht verändert werden.
Grüße dapizzafressa -
<html> <head> <title>Für was man das auch immer braucht...</title> <script type="javascript"> var text="hallo"; window.setTimeout("alert('"+text+"')",5000); function changevalue(neuerwert) { text = neuerwert; } </script> </head> <body> <a href="#" onclick="javascript:changevalue('hallo welt...');">Hallo Welt nach 5 Sek. ausgeben</a> <a href="#" onclick="javascript:changevalue('irgendwas anderes...');">Irgendwas anderes nach 5 Sek. ausgeben</a> </body> </html>
-
Anscheinend ist immer noch nicht ganz klar, was ich tun möchte:
Ich möchte auf einer beliebigen Seite, auf die ich z.B. auch keinen Zugriff hab, um den Code auf dem Server zu ändern, einer JS-Variable einen anderen Wert zuweisen. Also irgendwie Browserseitig.
@nerdinator: Besten Dank, Firedebug war genau das, was is gesucht hab :). Danke !
Grüße dapizzafressa -
Ich möchte auf einer beliebigen Seite, auf die ich z.B. auch keinen Zugriff hab, um den Code auf dem Server zu ändern, einer JS-Variable einen anderen Wert zuweisen. Also irgendwie Browserseitig.
Mal davon abgesehen das XSS in eine Grauzone fällt und von den wenigsten Browsern noch wirklich unterstützt wird, kannst du häufig zum ändern einer JavaScript Variable einfach die Website in ein Frame laden und dann über dein Frame von außen die ein oder andere Variable ändern, aber wie schon gesagt. Das fällt unter XSS und geht häufig nicht mehr.
-
Ich denke das Problem liegt darin, dass SetTimeOut ein String erwartet und deswegen der Parameter mit als Wert und nicht als Referenz gespeichert wird. Somit wird beim Aufruf
window.setTimeout("alert('"+text+"')",5000);
temporär der Quelltext "alert('hallo')" gespeichert und nach Ablauf der Zeit ausgeführt, egal welchen Wert nun text hat.
Das ganze lässt sich umgehen, wenn du eine Funktion verwendest:
var text="hallo"; window.setTimeout("sayText()",5000); function changevalue(neuerwert) { text = neuerwert; } function sayText(neuerwert) { alert(text); }
MFG
Edit:
An alle die die Frage nicht richtig verstanden haben:
Er möchte die Möglichkeit haben, dass der Text der ausgegeben wird vor Ablauf des Timouts noch geäntert wird (glaube ich zumindest )
Beitrag geändert: 22.8.2008 14:09:12 von powertomato -
Bevor hier noch mehr (sinnlose) Antworten kommen, das Problem hat sich erledigt:
@nerdinator: Besten Dank, Firedebug war genau das, was is gesucht hab :). Danke !
-> CLOSED -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage