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?