Seite 1 von 2

Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 17:47
von Delle
Hallo,

gibt's eine Möglichkeit die Klicks auf Buttons in einem Webgadget auszuwerten?

Es wird also ein Webgadget erstellt, mit HTML gefüllt (darunter <input type=button name=bla value=Irgendwas>) und wenn da dann draufgeklickt wird, soll PB das abfangen und dann eine Aktion starten (z.B. das Webgadget aktualisieren oder ein DIV entfernen etc.).

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 18:31
von NicTheQuick
Wenn nur simple Dinge innerhalb des WebGadgets passieren sollen, böte sich immer noch Javascript an. Das wäre an dieser Stelle zumindest am einfachsten.

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 18:44
von Delle
Yup so ist das auch geplant, aber "intern" soll eben z.B. noch ein DB-Eintrag entfernt werden.

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 20:29
von Kiffi
Du kannst im HTML den document.title verändern und PureBasic auf #PB_EventType_TitleChange horchen lassen:

Code: Alles auswählen

#Window    = 0
#WebGadget = 0
Procedure WebGadgetTitleChangeEvent()
	
	Select GetGadgetItemText(#WebGadget, #PB_Web_PageTitle)
		Case "huhu"
			Debug "'klick mich 1' gedrückt"
		Case "haha"
			Debug "'klick mich 2' gedrückt"
	EndSelect
	
EndProcedure

OpenWindow(#Window, 0, 0, 400, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 

WebGadget(#WebGadget, 0, 0, 400, 300, "")

HTML.s = "<html><body>" + 
         "<input type='button' value='klick mich 1' onclick='document.title=" + Chr(34) + "huhu" + Chr(34) + "' /><br />" + 
         "<input type='button' value='klick mich 2' onclick='document.title=" + Chr(34) + "haha" + Chr(34) + "' />" + 
         "</body></html>"

BindGadgetEvent(#WebGadget, @WebGadgetTitleChangeEvent(), #PB_EventType_TitleChange)

SetGadgetItemText(#WebGadget, #PB_Web_HtmlCode, HTML)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße ... Peter

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 20:32
von Delle
Genau sowas meinte ich! Danke! :allright:

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 20:42
von Nino
Kiffi:
Cool 8) :allright:
Vielen Dank :!:

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 21:11
von ts-soft
Danke Peter,

funktioniert leider nur unter Windows :(

also doch javascript.

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 21:14
von NicTheQuick
ts-soft hat geschrieben:funktioniert leider nur unter Windows :(

also doch javascript.
So ist das bei PB die letzte Zeit immer öfter.

"Plattformunabhängigkeit? Nein, Danke!"

/:->

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 21:55
von Kiffi
wie sieht's denn hiermit aus?

Code: Alles auswählen

#Window    = 0
#WebGadget = 0

Procedure NavigationCallback(Gadget, Url$) 
    
	Select StringField(Url$, 2, "#")
		Case "huhu"
			Debug "'klick mich 1' gedrückt"
		Case "haha"
			Debug "'klick mich 2' gedrückt"
	EndSelect
	
  ProcedureReturn #False 
  
EndProcedure 

OpenWindow(#Window, 0, 0, 400, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 

WebGadget(#WebGadget, 0, 0, 400, 300, "")

SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())

HTML.s = "<html><body>" + 
         "<input type='button' value='klick mich 1' onclick='window.location.href=" + Chr(34) + "#huhu" + Chr(34) + "' /><br />" + 
         "<input type='button' value='klick mich 2' onclick='window.location.href=" + Chr(34) + "#haha" + Chr(34) + "' />" + 
         "</body></html>"


SetGadgetItemText(#WebGadget, #PB_Web_HtmlCode, HTML)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße ... Peter

Re: Webgadget: Klicks auf Buttons auswerten

Verfasst: 10.02.2015 23:06
von mk-soft
Geht unter Mac auch nicht :cry: