Ergebnis 16 bis 29 von 29
Thema: dynamische Funktionsnamen
-
15-07-2011, 19:52 #16
Eroberer
- registriert
- 09-04-2010
- Beiträge
- 55
AW: dynamische Funktionsnamen
Hier der Aufruf beim laden der Seite
Code:<body onload="startpart()" bgcolor="#ffffff">
Code:<td bgcolor="silver" width="458"><label class="updatebox8" onclick="menuneu(levelname='divinsert');insertsave()">Speichern</label></td>
Ich weiß nicht so genau, warum ich knapp 20 HTML,PHP und JS files hier posten soll. Ich brauche einfach nur die Möglichkeit wie in PHP Namen, hier Funktionsnamen, variabel zu gestalten und diese in der Funktion "outfunction" zu hinterlegen und zu starten.
-
16-07-2011, 00:44 #17
AW: dynamische Funktionsnamen
1. Woher hast du diesen func(parametername=wert) Schwachsinn? Ist zwar valides JS... aber sinnfrei.
2. Schau' dir doch das Beispiel von jspit (OT: ich nehm' das irgendwie immer als j-spit nicht als js-pit wahr... aber das nur am Rande) genau an!
-
17-07-2011, 22:19 #18
Eroberer
- registriert
- 09-04-2010
- Beiträge
- 55
AW: dynamische Funktionsnamen
Vielleicht auch eine sinnfreie Lösung und bestimmt kein Glanzstück, aber eine die Funktioniert:
Code:function ausgeben() { if (http.readyState == 4) { var datenblock = http.responseText; eval(outfunction)(datenblock); }
-
18-07-2011, 01:45 #19
AW: dynamische Funktionsnamen
BITTE... verwende das nicht!
Du darfst die Funktion nicht als Funktionsnamen (String) übergeben, sondern muss diese als Refernz übergeben.
-
18-07-2011, 09:59 #20
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: dynamische Funktionsnamen
Wenn du uns zeigen würdest, wie du die Funktion aufrufst und wo du die Funktionsreferenz übergibst, wäre das nicht nötig.
Wir können bei deinem seltsamen Code nur raten was du falsch machst. Wenn uebersichtcontent deine Funktion ist, dann sähe der aufruf so aus:
Code:function startpart() { datenconnect(file03,"","",uebersichtcontent); }
-
18-07-2011, 12:11 #21
AW: dynamische Funktionsnamen
Wenn man dich absolut nicht von den functionsreferenzen überzeugen kann, dann nimm bitte das window-object statt eval:
Code:function ausgeben() { if (http.readyState == 4) { var datenblock = http.responseText; window[outfunction](datenblock); }
-
18-07-2011, 21:52 #22
Eroberer
- registriert
- 09-04-2010
- Beiträge
- 55
AW: dynamische Funktionsnamen
Die Aussage ist weder überheblich noch arrogant gemeint, aber bin so langsam am verzweifeln und hatte unter einer Vielzahl von Google Seiten diese Möglichkeit gefunden. Weiß aber auch, daß alle guten Seiten und alle guten Statements von "eval" abraten.
Dieser Code ist immer dann vorhanden, wenn eine Ajax Aktion ausgeführt werden soll. Also nur der Teil "dataconnect()" ist immer identisch für die Ajaxfunktion.
Code:function startpart() { datenconnect(file03,"","",uebersichtcontent); }
Ich starte jetzt einen neuen Versuch, eine Funktionsreferenz hinzubekommen.
ein schlauer:
Ja, "uebersichtcontent" ist ein Beispiel für eine weiterverarbeitende Funktion. Weiterhin kommen die Funktionen "datacontentlevelfirst,datacontentlevelsecond,updatewrite,insertwrite" dazu und 2 weiter benötige ich noch. Daher will ich die Funktionen in globalen Variablen hinterlegt haben und dann über die Funktion "datenconnect" (ajax Funktion) im vierten Parameterübersenden, um die Ajax Ausgabefunktion nicht unnötig aufzublähen.
-
18-07-2011, 22:02 #23
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: dynamische Funktionsnamen
Du musst nichts in globalen Variabeln hinterlegen, weil Funktionen schon "hinterlegt" sind, über ihren Namen. Wie gesagt, wenn wir wüßten was du machst könnten wir dir helfen. Hilfreich wäre es auch, wenn du dir klar machst WAS Funktionsreferenzen sind und wie man sie verwendet.
-
18-07-2011, 22:06 #24
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: dynamische Funktionsnamen
Um das mal ein bisschen auszuführen, das tolle ist, dass eigentlich auch gar keine globalen Funktionen brauchst, wenn du mit closures arbeitest oder lokale Funktionen deklarierst.
Hier mal ein kurzes Beispiel:
Code:function makeFunction(p) { function localAlert() { alert('Hallo ' + p); }; return localAlert; } var chappy_berlin = makeFunction('chappy_berlin'); chappy_berlin();
Geändert von ein schlauer (18-07-2011 um 23:22 Uhr) Grund: var oder my, das ist hier die Frage?
-
18-07-2011, 23:15 #25
-
20-07-2011, 02:18 #26
Eroberer
- registriert
- 09-04-2010
- Beiträge
- 55
AW: dynamische Funktionsnamen
Sorry, aber ich sehen den Wald vor lauter Bäumen nicht!
Versuche mit seit gestern in Funktionsreferenzen, aber die wollen absolut nicht wie ich!
Code:function datenconnect(file, datacontent, outpart, outfunction){ var http = null; if (window.XMLHttpRequest) { http = new XMLHttpRequest(); } else if (window.ActiveXObject) { http = new ActiveXObject("Microsoft.XMLHTTP"); } if (http != null) { http.open("POST", file, true); http.onreadystatechange = ausgeben; http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); http.send(datacontent); } function ausgeben() { if (http.readyState == 4) { //var datenblock = http.responseText; //window[outfunction](datenblock); datenconnect(http.responseText); } } } ausgeben(uebersichtcontent);
Quelldatei: http://localhost/INTERNE_DV/shopsyst...ajaxkernel1.js
Zeile: 20"
und beiCode:datenconnect(uebersichtcontent);
Quelldatei: http://localhost/INTERNE_DV/shopsyst...ajaxkernel1.js
Zeile: 29"
Was um alles in der Welt übersehe oder verstehe ich nicht???
-
20-07-2011, 08:29 #27
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: dynamische Funktionsnamen
Die erste Fehlermeldung ist mir unbekannt und habe ich noch nie gesehen. Von welchem Browser stammt die?
Klar, ausgeben ist nicht definiert und keiner hat gesagt, dass du ausgeben aufrufen kannst oder sollst.
Code:function datenconnect(file, datacontent, outpart, outfunction){ var http = null; if (window.XMLHttpRequest) { http = new XMLHttpRequest(); } else if (window.ActiveXObject) { http = new ActiveXObject("Microsoft.XMLHTTP"); } if (http != null) { http.open("POST", file, true); http.onreadystatechange = ausgeben; http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); http.send(datacontent); } function ausgeben() { if (http.readyState == 4) { outfunction(http.responseText); } } } datenconnect(url, '', '', function(txt) { alert(txt);});
-
20-07-2011, 09:53 #28
Eroberer
- registriert
- 09-04-2010
- Beiträge
- 55
AW: dynamische Funktionsnamen
Diese Meldung stammt aus der Fehlerkonsole von Mozilla Firefox 5.0.
Aber du scheinst irgendwie das Konzept nicht verstanden zu haben.
Die einzigste Lösung die ich zum laufen bekommen habe, ist die von jspit mitCode:window[outfunction](datenblock);
Geändert von chappy_berlin (20-07-2011 um 10:00 Uhr)
-
20-07-2011, 10:22 #29
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: dynamische Funktionsnamen
aus dem Grund hatte ich dir das Beipsiel gezeigt, wenn du das nachvollziehen kannst, weißt du was Funktionsreferenzen sind.
Mein Beispiel funktioniert auch, wenn es bei dir nicht funktioniert, dann machst du etwas falsch. Aber du hast meinen Vorschlag bisher nicht umgesetzt (der letzte Code, war wieder etwas anderes, als ich dir gezeigt hatte)
Ähnliche Themen
-
Dynamische URL
Von martl666 im Forum JavaScriptAntworten: 7Letzter Beitrag: 09-01-2009, 14:26 -
Dynamische Funktionsnamen
Von tobi-848 im Forum JavaScriptAntworten: 7Letzter Beitrag: 30-10-2008, 11:11 -
Konstanten / Funktionsnamen etc.
Von stormwind im Forum Serverseitige ProgrammierungAntworten: 2Letzter Beitrag: 09-10-2007, 22:00 -
Dynamische Url
Von DerPaul im Forum JavaScriptAntworten: 8Letzter Beitrag: 27-08-2007, 22:04 -
mit welchem funktionsnamen ist eventhandler verbunden?
Von inco im Forum JavaScriptAntworten: 30Letzter Beitrag: 11-10-2006, 10:19
Lesezeichen