WebViewGadget get html code from...

Just starting out? Need help? Post your questions and find answers here.
zikitrake
Addict
Addict
Posts: 868
Joined: Thu Mar 25, 2004 2:15 pm
Location: Spain

WebViewGadget get html code from...

Post by zikitrake »

With classic WebGadget() we have:
GetGadgetItemText() and #PB_Web_HtmlCode to get the source of a webpage.
Is there something similar for the new WebViewGadget()?

PB 6.10 LTS (x64) (Windows 11)

Code: Select all

Html$ =  ~"<button id=\"displayInfo\">Display Info</button>\n"+
           ~"<script>\n"+
           ~"  const displayInfoElement=document.getElementById(\"displayInfo\");\n"+
           ~"  document.addEventListener(\"DOMContentLoaded\", () => {\n"+
           ~"    displayInfoElement.addEventListener(\"click\", () => {\n"+
           ~"      window.displayInfo(1000, 2000).then(result => {\n"+
           ~"      });\n"+
           ~"    });\n"+
           ~"  });\n"+
           ~"</script>"
  
  OpenWindow(0, 100, 100, 400, 400, "Hello", #PB_Window_SystemMenu)

  WebViewGadget(0, 0, 0, 400, 400)
  SetGadgetItemText(0, #PB_WebView_HtmlCode, Html$)
   
  
  Html$ = ""

  Html$ = GetGadgetItemText(0, #PB_WebView_HtmlCode) ; <------------------------ :(
  Debug Html$

  Repeat 
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
Thank you!
Last edited by zikitrake on Mon May 06, 2024 5:40 pm, edited 2 times in total.
PB 6.21 beta, PureVision User
User avatar
Kiffi
Addict
Addict
Posts: 1484
Joined: Tue Mar 02, 2004 1:20 pm
Location: Amphibios 9

Re: WebViewGadget get html code from...

Post by Kiffi »

You must give the WebViewGadget time to load and display the HTML.
Hygge
zikitrake
Addict
Addict
Posts: 868
Joined: Thu Mar 25, 2004 2:15 pm
Location: Spain

Re: WebViewGadget get html code from...

Post by zikitrake »

Kiffi wrote: Mon May 06, 2024 2:54 pm You must give the WebViewGadget time to load and display the HTML.
Thank you, Kiffi, but It doesn't seem to work

Code: Select all

Html$ =  ~"<button id=\"displayInfo\">Display Info</button>\n"+
           ~"<script>\n"+
           ~"  const displayInfoElement=document.getElementById(\"displayInfo\");\n"+
           ~"  document.addEventListener(\"DOMContentLoaded\", () => {\n"+
           ~"    displayInfoElement.addEventListener(\"click\", () => {\n"+
           ~"      window.displayInfo(1000, 2000).then(result => {\n"+
           ~"      });\n"+
           ~"    });\n"+
           ~"  });\n"+
           ~"</script>"

  
  OpenWindow(0, 100, 100, 400, 400, "Hello", #PB_Window_SystemMenu)

  WebViewGadget(0, 0, 0, 400, 400)
  SetGadgetItemText(0, #PB_WebView_HtmlCode, Html$)
  
  Debug "Waiting...."
  For f = 1 To 4000
    Delay(1)
    WindowEvent()
  Next  
  Debug "Continue..."
  
  Html$ = ""
  Debug Html$
  Html$ = GetGadgetItemText(0, #PB_WebView_HtmlCode) ; <------------------------ :(
  Debug Html$ 
  
  Repeat 
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
PB 6.21 beta, PureVision User
User avatar
Kiffi
Addict
Addict
Posts: 1484
Joined: Tue Mar 02, 2004 1:20 pm
Location: Amphibios 9

Re: WebViewGadget get html code from...

Post by Kiffi »

Sorry for misreading.

GetGadgetItemText() doesn't work with WebViewGadget().

You can do something like this:

Code: Select all

Html$ = ~"<html>\n" + 
        ~"<head>\n" + 
        ~"	<script>\n" + 
        ~"		document.addEventListener('DOMContentLoaded', () => {\n" + 
        ~"			window.DomContentLoaded(document.documentElement.outerHTML);\n" + 
        ~"		});\n" + 
        ~"	</script>\n" + 
        ~"</head>\n" + 
        ~"<body>\n" + 
        ~"	<h1>Hello World!</h1>\n" + 
        ~"</body>\n" + 
        ~"</html>";

Procedure DomContentLoaded(JsonParameters$)
  Debug JsonParameters$
EndProcedure

OpenWindow(0, 100, 100, 400, 400, "Hello", #PB_Window_SystemMenu)
WebViewGadget(0, 0, 0, 400, 400, #PB_WebView_Debug)
BindWebViewCallback(0, "DomContentLoaded", @DomContentLoaded())
SetGadgetItemText(0, #PB_WebView_HtmlCode, Html$)

Repeat 
  Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Hygge
zikitrake
Addict
Addict
Posts: 868
Joined: Thu Mar 25, 2004 2:15 pm
Location: Spain

Re: WebViewGadget get html code from...

Post by zikitrake »

Kiffi wrote: Tue May 07, 2024 12:15 am...
Thank you!! I think I now have a better understanding of how to work with the new gadget.
PB 6.21 beta, PureVision User
Post Reply