JavaScript itself seems to be working.
Try this
Code: Select all
If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  
  WebGadget(0, 10, 10, 580, 240, "")
  SetGadgetItemText(0, #PB_Web_HtmlCode, "<html><body><p>This is a simple test text</body></html>")
  
  ButtonGadget(1, 10, 260, 200, 30, "Evaluate script")
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          
          ScriptObject = CocoaMessage(0, GadgetID(0), "windowScriptObject")
          CocoaMessage(0, ScriptObject, "evaluateWebScript:$", @"location.href='www.purebasic.com'")
          
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
  
EndIf
You will see it loads the PureBasic site when the script is evaluated.
Maybe print and alert aren't supported from within a WebGadget.
If you want to print, you can do it like this
Code: Select all
If OpenWindow(0, 0, 0, 600, 300, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  
  WebGadget(0, 10, 10, 580, 240, "")
  SetGadgetItemText(0, #PB_Web_HtmlCode, "<html><body><p>This is a simple test text</body></html>")
  
  ButtonGadget(1, 10, 260, 200, 30, "Print")
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
        Case 1
          
          PrintInfo = CocoaMessage(0, 0, "NSPrintInfo sharedPrintInfo")
          FrameView = CocoaMessage(0, CocoaMessage(0, GadgetID(0), "mainFrame"), "frameView")
          Operation = CocoaMessage(0, FrameView, "printOperationWithPrintInfo:", PrintInfo)
          CocoaMessage(0, Operation, "setShowsPrintPanel:", #True)
          CocoaMessage(0, Operation, "runOperation")
          
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
  
EndIf