NEWS
VIS - Für die Maus "durchsichtige" Buttons möglich?
-
Hallo Zusammen,
folgendes Szenario:
Ich habe eine Website (Tado Hourly Chart für die Stromkosten) in VIS als iFrame eingebunden. Auf der Seite gibt es oben Pfeile um durch die Tage zu springen.Ich würde jetzt gerne einen Button über den Pfeil legen der für die Maus quasi "durchsichtig" ist. Es soll also weiterhin der Pfeil auf der Website geklickt werden (damit die Website auf den nächsten Tag umspringt). Gleichzeitig soll aber auch der Button gedrückt werden damit iobroker "weiß", dass ich jetzt auf dem nächsten Tag bin und mir dann die Preise etc. für den nächsten Tag einblendet anstelle vom heutigen.
Ja, man könnte bestimmt das Diagramm in Grafana nachbauen und damit um das Problem herumkommen. Aber a) will ich das gerade nicht und b) hab ich mir diese Frage (für verschiedene Anwendungen) schon mehrfach gestellt und bisher keine zündende Idee gehabt. Daher sind Vorschläge gerne willkommen!
-
so direkt geht das nicht, da für iframes aus sicherheitsgründen im browser ein paar extra regeln gelten.
ich würde 2 separate buttons definieren und bei klick auf diesen per javascript zum einen einen neuen klick im iframe auf den jeweiligen vor/zurück button auslösen und zum anderen dann die anzeige der neuen preise
https://www.createit.com/blog/how-to-trigger-a-click-event-inside-iframe/
-
@oliverio
Vielen Dank! Das klingt interessant, das gucke ich mir mal in Ruhe an. Muss dann nur rausbekommen, wie man eine bestimmte Stelle im iFrame mit einem ClickEvent klickt. Weiß nicht, ob die kleinen Pfeile die man anklicken muss wirklich Buttons sind. -
das steht in dem verlinkten artikel drin
-
@oliverio
Vielleicht übersehe ich's, aber da ist nur ein Beispiel, wie man einen Button im iFrame klickt:document.getElementById("myIframe").contentWindow.document.getElementById("toggleDivButton").click();
Ich habe noch nicht gefunden, wie man eine beliebige (X,Y) Stelle klickt. Aber das sollte sich durch googeln ja rausfinden lassen.
-
du wirst auch nicht an eine x,y koordinte klicken wollen.
die kann sich ja immer wieder mal ändern und ist zu ungenau.der übliche weg ist per css-selector bzw hier ein id-selektor das element finden und dann diesem sagen, das es geklickt wurde. genau so wie im beispiel