Ereignis abfangen einer HTML-Seite im Webgadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Ereignis abfangen einer HTML-Seite im Webgadget

Beitrag von dysti »

Hallo,
habe ein starkes Verständnisproblem.
Habe ein Webgadget erstellt und lade eine Webseite dort hinein.
Diese beinhaltet z.B. zwei Hyperlink-Schaltflächen.
Wird eine Schaltfläche angeklickt, wird eine Datei gedownloadet.

Wie kann ich in Pb dieses Ereignis abfangen und das Ereignis weiterverarbeiten?
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

siehe unten ... /:->
Zuletzt geändert von X360 Andy am 13.07.2009 21:29, insgesamt 1-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Ereignis abfangen einer HTML-Seite im Webgadget

Beitrag von Kiffi »

dysti hat geschrieben:Wie kann ich in Pb dieses Ereignis abfangen und das Ereignis weiterverarbeiten?
mit einem NavigationCallback:

Code: Alles auswählen

SetGadgetAttribute(#DeinWebgadget, #PB_Web_NavigationCallback, @DeinNavigationCallback())
alles weitere in der Hilfe.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

@Kiffi,
genau da fängt ja mein Problem an. Ich weiß ja, das ich ein Callback einrichten kann aber was im Callback steht, genau da hört die Hilfe auf.
Kein Beispiel dort enthalten.
Ich hoffe, ihr könnten meinen Nebel im Gehirn beseitigen?
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

leicht modifiziertes Beispiel aus der Hilfe:

Code: Alles auswählen

Procedure NavigationCallback(Gadget, Url$)
  
  ; Geben Sie #True zurück, um diese Navigation zu erlauben, oder #False um sie zu unterbinden.
  
  If Url$= "http://www.purebasic.com/news.php"
    MessageRequester("", "No news today!")
    ProcedureReturn #False
  Else
    ProcedureReturn #True
  EndIf
  
EndProcedure

If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 10, 10, 580, 280, "http://www.purebasic.com")
  
  SetGadgetAttribute(0, #PB_Web_NavigationCallback, @NavigationCallback())
  
  Repeat 
  Until WaitWindowEvent() = #PB_Event_CloseWindow
  
EndIf
Nach Starten des Codes wird die PB-Homepage angezeigt. Im CallBack
wird exemplarisch das Navigieren auf die News-Seite verhindert.

Grüße ... Kiffi
a²+b²=mc²
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

Beitrag von ts-soft »

Da steht im zweiten parameter die URL, diese vergleichste mit der
erwarteten und machst was immer Du machen möchtest und gibst #True
oder #False zurück, je nachdem ob der Url noch gefolgt werden soll oder nicht.

//edit
zu langsam
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
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

.......herzlichen Dank.
Nebel beseitigt. Jetzt ist alles klar.
Beispiel sagt einfach mehr als tausend worte.
Man liest immer wieder, aber man bleibt blind.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Little John

Beitrag von Little John »

2dysti:
Ich denke nicht dass Du blind warst/bist, sondern in der Hilfe steht diesbezüglich nichts wirklich erhellendes. In die Dokumentation gehört ein Beispiel mit lauffähigem Code, wie das von Kiffi.

Gruß, Little John
Antworten