NEWS
[Hilfe]: javascript Variablen Übergabe. Globales Script??
-
Hallo, habe ein Problem mit der Übergabe von Variablen. Hauptproblem ist, das ich mich nicht wirklich auskenne mit javascript und mein Wissen hier aus dem Forum stammt.
Ich brauch in mehreren Scripten Datumsvariablen z.B. d, dm, dd usw.
schedule("5 0 * * *", function () { var d = new Date(); var dm = d.getMonth() +1; var dd = d.getDate(); var dJ = d.getFullYear(); //VorMonat als Namen Date.prototype.getFullMonth = function () { return (["Dezember", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November"])[this.getMonth()]; }; var VdM = d.getFullMonth(); });Ich habe jetzt das ganze als globales Scritp erstellt, allerdings funktionieren die Variablen nicht in den normalen Scripten.
Den Hinweis habe ich gelesen zu globalen Variablen, aber nicht wirklich verstanden.
Wäre super, wenn mir jemand einen Tipp geben kann, wie ich das lösen kann.
Herzlichen Dank
Gruß Zippolighter -
Der Code aus globalen Skripten wird nur vor jedes "normale" Skript kopiert..
Beispiel: Du hast 1 globales Skript und 2 "normale"..
Globales Skript:
log('Das ist ein globales Skript');Skript 1:
log('Das ist das erste normale Skript');Skript 2:
log('Das ist das zweite normale Skript');Die Skripts bleiben separat und kriegen nur das globale Skript vorne angestellt..
Der Code wird im Hintergrund jetzt also so aussehen:
Skript 1:log('Das ist ein globales Skript'); log('Das ist das erste normale Skript');Skript 2:
log('Das ist ein globales Skript'); log('Das ist das zweite normale Skript');Du wirst über States gehen müssen..
Also speichern mit setState(); und in anderen Skripten dann mit getState(); wieder auslesen..Gruß
-
Globale Skripte sind für häufig verwendete eigene Funktionen (mit Ergebnis-Rückgabe) gedacht. Globale Funktionen können aus jedem nicht globalen Skript aufgerufen werden. Die Bezeichner der globalen Funktionen sind für die gesamte JS-Instanz gültig (reserviert).
-
Beispiel für ein globales Script:
function deltaDays(date1, date2) { if(!date1 || !date2) return null; var check1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()); var check2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()); return Math.round(Math.abs(check1 - check2) / (1000 * 60 * 60 * 24 )); }und dann der Aufruf in einem normales Script
var gAnzTage = deltaDays((new Date()), (new Date(getState("javascript.0.LetzterBatteriewechsel").val))));Vielleicht wird es dadurch klarer. Mir persönlich helfen immer konkrete Beispiele.
In diesem Fall ermittle ich über die Funktion im globalen Script die Anzahl der Tage zwischen zwei Datum und nutze es dafür um den Lebenszyklus meiner Batterien zu ermitteln. -
Beispiel für ein globales Script:
function deltaDays(date1, date2) { if(!date1 || !date2) return null; var check1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate()); var check2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate()); return Math.round(Math.abs(check1 - check2) / (1000 * 60 * 60 * 24 )); }und dann der Aufruf in einem normales Script
var gAnzTage = deltaDays((new Date()), (new Date(getState("javascript.0.LetzterBatteriewechsel").val))));Vielleicht wird es dadurch klarer. Mir persönlich helfen immer konkrete Beispiele.
In diesem Fall ermittle ich über die Funktion im globalen Script die Anzahl der Tage zwischen zwei Datum und nutze es dafür um den Lebenszyklus meiner Batterien zu ermitteln.@htrecksler sagte:
Mir persönlich helfen immer konkrete Beispiele.
Das einzige von mir verwendete globale Skript:
function runden(wert, stellen) { return Math.round(wert * Math.pow(10, stellen)) / Math.pow(10, stellen); }
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden