Felix Riesterer: wie Zugriff auf Javascript-Funktion?

Beitrag lesen

Lieber Klaus1,

			<script>
				window.onload = function () {
...
				};
			</script>

warum sich auf diese Uralt-Methode verlassen? Sie hat nicht umsonst ausgedient.

Im JS vom Head-Teil wird ein Ajax-Script aufgerufen, dass Daten zurückliefert, die ich der Funktion (save) innerhalb des Body-Teils übergeben muss.

In solchen Fällen benötigst Du eine "globale Variable", also eine dem window-Objekt (oder dem document-Objekt) hinzugefügte Eigenschaft wie etwa window.myData. Das will man aber "richtig" machen, da solche "globalen Variablen" in aller Regel unsaubere Programmierung sind. Besser ist ein globales Objekt, welches Deine Geschäftslogik und Daten kapselt:

// Code ungetestet!
window.myApplication = {
  MyObject: (element, data) => {
    // ...
  },
  "andere Eigenschaft": 42,
  "andere Methode": (param) => {
    // ...
  },
  ajaxData: {},
  baum: null,
  save: () => {
    // tue etwas
    console.log(this.ajaxData);
  },
  setup: () => {
    // initialisiere Baum
    this.baum = new this.MyObject(
      document.getElementById("baum"),
      {}
    );
  }
};

document.addEventListener(
  "DOMContentLoaded",
  (event) => { myApplication.setup(); }
);

Auf diese Weise hast Du alles für Deine Applikation gekapselt und kannst aus anderen Geltungsbereichen heraus darauf zugreifen.

Oder ich muss auf ein dort erstelltes Objekt (myobj) zugreifen können.

Ja, in der oben beschriebenen Art und Weise.

Liebe Grüße

Felix Riesterer