Webgadget: Klicks auf Buttons auswerten

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Webgadget: Klicks auf Buttons auswerten

Beitrag 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.).
PB 6.21 | Win 11
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag 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.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag von Delle »

Yup so ist das auch geplant, aber "intern" soll eben z.B. noch ein DB-Eintrag entfernt werden.
PB 6.21 | Win 11
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag 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
a²+b²=mc²
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag von Delle »

Genau sowas meinte ich! Danke! :allright:
PB 6.21 | Win 11
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag von Nino »

Kiffi:
Cool 8) :allright:
Vielen Dank :!:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag von ts-soft »

Danke Peter,

funktioniert leider nur unter Windows :(

also doch javascript.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag 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!"

/:->
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag 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
a²+b²=mc²
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Webgadget: Klicks auf Buttons auswerten

Beitrag von mk-soft »

Geht unter Mac auch nicht :cry:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten