NEWS
Wie geöffneten Dialog erkennen?
-
Mit Hilfe des Widgets "jqui container - Icon - view in jqui Dialog" öffne ich einen Dialog über den ich dann verschiedene Parameter für die Heizung setze. Das klappt so weit wie geplant.
Jetzt möchte ich noch irgendwie erkennen (z.B. in einem JS-Script), dass der Dialog geöffnet wurde um beim Öffnen initiale Parameter zu setzen... geht das?
Perfekt wäre ein 'on dialog open' oder so...Hat dazu jemand eine Idee?
-
Mit Hilfe des Widgets "jqui container - Icon - view in jqui Dialog" öffne ich einen Dialog über den ich dann verschiedene Parameter für die Heizung setze. Das klappt so weit wie geplant.
Jetzt möchte ich noch irgendwie erkennen (z.B. in einem JS-Script), dass der Dialog geöffnet wurde um beim Öffnen initiale Parameter zu setzen... geht das?
Perfekt wäre ein 'on dialog open' oder so...Hat dazu jemand eine Idee?
Ja geht , in dem du dieses in die View legst .... ( natürlich noch anpassen ) , welche sich dann im Popup öffnet
siehe hier :
https://forum.iobroker.net/topic/41275/aktualisierung-der-dps-bei-aufruf-der-vis/12?_=1613125661634
-
Ja geht , in dem du dieses in die View legst .... ( natürlich noch anpassen ) , welche sich dann im Popup öffnet
siehe hier :
https://forum.iobroker.net/topic/41275/aktualisierung-der-dps-bei-aufruf-der-vis/12?_=1613125661634
@glasfaser
Yes - Sehr genial. Genau das habe ich gesucht.Auf die Idee das so zu machen:
document.getElementById("w00660").addEventListener("load", vis.setValue("0_userdata.0.DialogActive", true));Und das als Script im HTML Widget einzubetten ist schon sehr verrückt :-)
Aber es geht! Der Datenpunkt wird beim Öffnen des Dialogs zuverlässig auf true gesetzt.Nur... Nach dem Schließen müsste das flag ja auch wieder auf false gesetzt werden.
Gibt es dafür einen ähnlich interessanten Weg? -
@glasfaser
Yes - Sehr genial. Genau das habe ich gesucht.Auf die Idee das so zu machen:
document.getElementById("w00660").addEventListener("load", vis.setValue("0_userdata.0.DialogActive", true));Und das als Script im HTML Widget einzubetten ist schon sehr verrückt :-)
Aber es geht! Der Datenpunkt wird beim Öffnen des Dialogs zuverlässig auf true gesetzt.Nur... Nach dem Schließen müsste das flag ja auch wieder auf false gesetzt werden.
Gibt es dafür einen ähnlich interessanten Weg?@oberstel sagte in Wie geöffneten Dialog erkennen?:
Nur... Nach dem Schließen müsste das flag ja auch wieder auf false gesetzt werden.
Gibt es dafür einen ähnlich interessanten Weg?Müsste eigentlich über den Schließen Button gehen , müßte man per Konsole ( developer tools ) ersmal raussuchen was und wie getriggert wird .
-
@oberstel sagte in Wie geöffneten Dialog erkennen?:
Nur... Nach dem Schließen müsste das flag ja auch wieder auf false gesetzt werden.
Gibt es dafür einen ähnlich interessanten Weg?Müsste eigentlich über den Schließen Button gehen , müßte man per Konsole ( developer tools ) ersmal raussuchen was und wie getriggert wird .
@glasfaser
Eigentlich ganz einfach. Über den EventListener einfach das Close Ereignis nutzen...Das Script im HTML Widget sieht bei mir jetzt so aus:
document.getElementById("w00660").addEventListener("load", vis.setValue("0_userdata.0.DialogActive", true)); document.getElementById("w00660").addEventListener("unload", vis.setValue("0_userdata.0.DialogActive", false));Erledigt :-)
-
@glasfaser
Eigentlich ganz einfach. Über den EventListener einfach das Close Ereignis nutzen...Das Script im HTML Widget sieht bei mir jetzt so aus:
document.getElementById("w00660").addEventListener("load", vis.setValue("0_userdata.0.DialogActive", true)); document.getElementById("w00660").addEventListener("unload", vis.setValue("0_userdata.0.DialogActive", false));Erledigt :-)
Naja, so ganz klappt das dann doch nicht :-(
Das funktioniert nur beim ersten öffnen eines Dialogs - Danach nicht mehr. Da ich genau diese Funktion aber für mehrere Dialoge nutzen möchte, komme ich hier irgendwie nicht weiter :-(
Es hilft auch nix den Browser Cache zu leeren und es ist auch egal ob ich Safari, Chrome oder Firefox nutze.
Erst nach einem Reload der Seite funktioniert die Erkennung, dass der Dialog geöffnet wurde, wieder.Hat jemand dazu eine Idee?
Muss man eventuell den EventListener irgendwie wieder deaktivieren?
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