Navigation bloquée avec #PB_WebGadget_HtmlCode

Programmation d'applications complexes
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par cederavic »

Bonjour, j'ai un petit soucis avec WebGadget et SetGadgetItemText(..., #PB_WebGadget_HtmlCode, ...).
J'aimerais générer des pages html dynamiquement dans mon programme en utilisant des modèles prédéfinis. Ca marche bien au début, mais impossible d'ouvrir un lien après...
Voila un code qui reproduit mon problème (je ne met pas le code de mon programme car il y a plusieurs dizaine de fichier + les images etc...)
Mettez tout d'abords l'exe temporaire dans le dossier source (Menu Compiler -> Compiler Options -> onglet Compile/Run -> cochez Create temporary executable in the source directory)
Lancez le code une première fois, il va générer les fichiers nécessaire aux IncludeBinary, puis sautez une lignes après le premier commentaire et relancez le :

Code : Tout sélectionner

; Compilez une première fois puis sautez une ligne après ce comment <-
CompilerIf #PB_Compiler_Line = 2
  #FirstRun = 1
  ; Création des fichiers nécessaires
  Declare InitPages()
  InitPages()
CompilerElse
  #FirstRun = 0
  Declare.b NavigationCallback(Gadget, Url$)

  ; Inclusion des fichiers
  *NavCallback = @NavigationCallback()
  DataSection
  
    WebHome:
      IncludeBinary "home.html"
      
    WebTest:
      IncludeBinary "test.html"
    
    WebEnd:
  EndDataSection
CompilerEndIf

Global BaseHRef.s = "file:///" + ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")

CompilerIf #FirstRun = 0
  Procedure.b NavigationCallback(Gadget, Url$)
    Protected InternalLink.s = StringField(Url$, 2, "%")
    Debug "URL = " + Url$
    Debug "InternalLink = " + InternalLink
    
    SetWindowTitle(0, "WebGadget : " + GetGadgetItemText(0, #PB_Web_PageTitle))
    
    Select LCase(InternalLink)
    
      Case "home"
        HomePage.s = PeekS(?WebHome, ?WebTest - ?WebHome)
        HomePage = ReplaceString(HomePage, "%BASEHREF%", BaseHRef)
        Debug "============ HOMEPAGE ============"
        Debug HomePage
        Debug "=================================="
        SetGadgetItemText(0, #PB_Web_HtmlCode, HomePage)
        ProcedureReturn #False
      
      Case "test"
        TestPage.s = PeekS(?WebTest, ?WebEnd - ?WebTest)
        TestPage = ReplaceString(TestPage, "%BASEHREF%", BaseHRef)
        Debug "============ TESTPAGE ============"
        Debug TestPage
        Debug "=================================="
        SetGadgetItemText(0, #PB_Web_HtmlCode, TestPage)
        ProcedureReturn #False
    
    EndSelect
  
    ProcedureReturn #True
  EndProcedure
CompilerEndIf

If OpenWindow(0, 0, 0, 800, 600, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 0, 0, 800, 600, BaseHRef + "index.html")
    SetGadgetAttribute(0, #PB_Web_NavigationCallback, *NavCallback)
  Repeat : Until WaitWindowEvent(2) = #PB_Event_CloseWindow
EndIf



Procedure InitPages()
  UsePNGImageEncoder()
  
  CreateFile(0, "index.html")
    WriteStringN(0, "<html>")
    WriteStringN(0, "  <head>")
    WriteStringN(0, "    <meta http-equiv=" + Chr(34) + "refresh" + Chr(34) + " content=" + Chr(34) + "0;url=%HOME%" + Chr(34) + ">")
    WriteStringN(0, "    <title>Index</title>")
    WriteStringN(0, "  </head>")
    WriteStringN(0, "  <body>")
    WriteStringN(0, "  </body>")
    WriteStringN(0, "</html>")
  CloseFile(0)
  
  CreateFile(0, "home.html")
    WriteStringN(0, "<html>")
    WriteStringN(0, "  <head>")
    WriteStringN(0, "    <base href=" + Chr(34) + "%BASEHREF%" + Chr(34) + " />")
    WriteStringN(0, "    <title>Home</title>")
    WriteStringN(0, "  </head>")
    WriteStringN(0, "  <body>")
    WriteStringN(0, "    <h1>Page Home</h1>")
    WriteStringN(0, "    <img src=" + Chr(34) + "img_home.png" + Chr(34) + " />")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "%HOME%" + Chr(34) + ">Home</a></p>")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "%TEST%" + Chr(34) + ">Test</a></p>")
    WriteStringN(0, "  </body>")
    WriteStringN(0, "</html>")
  CloseFile(0)
  
  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Red)
      DrawText(10, 10, "HOME", #Black, #Red)
    StopDrawing()
    SaveImage(0, "img_home.png", #PB_ImagePlugin_PNG)
  FreeImage(0)
  
  CreateFile(0, "test.html")
    WriteStringN(0, "<html>")
    WriteStringN(0, "  <head>")
    WriteStringN(0, "    <base href=" + Chr(34) + "%BASEHREF%" + Chr(34) + " />")
    WriteStringN(0, "    <title>Test</title>")
    WriteStringN(0, "  </head>")
    WriteStringN(0, "  <body>")
    WriteStringN(0, "    <h1>Page Test</h1>")
    WriteStringN(0, "    <img src=" + Chr(34) + "img_test.png" + Chr(34) + " />")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "%HOME%" + Chr(34) + ">Home</a></p>")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "%TEST%" + Chr(34) + ">Test</a></p>")
    WriteStringN(0, "  </body>")
    WriteStringN(0, "</html>")
  CloseFile(0)
  
  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Blue)
      DrawText(10, 10, "TEST", #Black, #Blue)
    StopDrawing()
    SaveImage(0, "img_test.png", #PB_ImagePlugin_PNG)
  FreeImage(0)
  
  MessageRequester("Info", "Fichiers crées, recompilez en sautant une ligne après le premier comment.", 0)
  
  End
EndProcedure
Si quelqu'un peut m'éclairer... Merci 8)

PS : ça faisait quelques années que je n'avais pas demandé d'aide tient :lol:
Dernière modification par cederavic le dim. 10/janv./2010 12:19, modifié 1 fois.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par Jacobus »

En mettant :

Code : Tout sélectionner

CompilerIf #PB_Compiler_Line = 3
ça fonctionne. La ligne de commentaire est comptabilisée comme 1, la ligne vide comme 2, ....
En fait chaque ligne est prise en compte.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par cederavic »

Euh... il est pas vraiment là le problème, mes CompilerIf fonctionnent très bien :P Je les ai mis pour générer d'abord les fichier html et les images afin de pouvoir les inclure après (ça m'évitait de poster touts les fichiers, et pour les modifier c'est plus rapide)
si CompilerIf #PB_Compiler_Line = 2 alors on créer les fichiers, sinon on les inclus (faut les créer avant de les inclure, sinon PB veux pas)
Mon problème se situe surtout au niveau du WebGadget où aucun liens ne fonctionnent après un SetGadgetItemText(..., #PB_WebGadget_HtmlCode, ...)
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par Jacobus »

Sorry, j'avais rien compris. Il devait être trop tard pour que je "compile" correctement :lol:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par cederavic »

Apparement en passant les liens en "about:" ça fonctionne, mais j'ai un gros freeze du programme pendant une dizaine de seconde au début et le titre à un train de retard :?

Code : Tout sélectionner

; Compilez une première fois puis sautez une ligne après ce comment <-

CompilerIf #PB_Compiler_Line = 2
  #FirstRun = 1
  ; Création des fichiers nécessaires
  Declare InitPages()
  Global BaseHRef.s = "file:///" + ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")
  InitPages()
CompilerElse
  #FirstRun = 0
  Declare.b NavigationCallback(Gadget, Url$)
  Global BaseHRef.s = "file:///" + ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")
  ; Inclusion des fichiers
  *NavCallback = @NavigationCallback()
  DataSection
    WebHome:
      IncludeBinary "home.html"
      
    WebTest:
      IncludeBinary "test.html"
    
    WebEnd:
  EndDataSection
CompilerEndIf

CompilerIf #FirstRun = 0
  Procedure.b NavigationCallback(Gadget, Url$)
    Protected InternalLink.s = StringField(Url$, 2, ":")
    Debug "GADGET = " + Str(Gadget)
    Debug "URL = " + Url$
    Debug "InternalLink = " + InternalLink
    
    SetWindowTitle(0, "WebGadget : " + GetGadgetItemText(0, #PB_Web_PageTitle))
    
    Select LCase(InternalLink)
      Case "home"
        HomePage.s = PeekS(?WebHome, ?WebTest - ?WebHome)
        HomePage = ReplaceString(HomePage, "%BASEHREF%", BaseHRef)
        Debug "============ HOMEPAGE ============"
        Debug HomePage
        Debug "=================================="
        SetGadgetItemText(Gadget, #PB_Web_HtmlCode, HomePage)
        ProcedureReturn #False
      
      Case "test"
        TestPage.s = PeekS(?WebTest, ?WebEnd - ?WebTest)
        TestPage = ReplaceString(TestPage, "%BASEHREF%", BaseHRef)
        Debug "============ TESTPAGE ============"
        Debug TestPage
        Debug "=================================="
        SetGadgetItemText(Gadget, #PB_Web_HtmlCode, TestPage)
        ProcedureReturn #False
    
    EndSelect
  
    ProcedureReturn #True
  EndProcedure
CompilerEndIf

If OpenWindow(0, 0, 0, 800, 600, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 0, 0, 800, 600, BaseHRef + "index.html")
    SetGadgetAttribute(0, #PB_Web_NavigationCallback, *NavCallback)
  Repeat : Until WaitWindowEvent(2) = #PB_Event_CloseWindow
EndIf



Procedure InitPages()
  UsePNGImageEncoder()
  
  CreateFile(0, "index.html")
    WriteStringN(0, "<html>")
    WriteStringN(0, "  <head>")
    WriteStringN(0, "    <meta http-equiv=" + Chr(34) + "refresh" + Chr(34) + " content=" + Chr(34) + "0;url=about:HOME" + Chr(34) + ">")
    WriteStringN(0, "    <title>Index</title>")
    WriteStringN(0, "  </head>")
    WriteStringN(0, "  <body>")
    WriteStringN(0, "  </body>")
    WriteStringN(0, "</html>")
  CloseFile(0)
  
  CreateFile(0, "home.html")
    WriteStringN(0, "<html>")
    WriteStringN(0, "  <head>")
    WriteStringN(0, "    <base href=" + Chr(34) + "%BASEHREF%" + Chr(34) + " />")
    WriteStringN(0, "    <title>Home</title>")
    WriteStringN(0, "  </head>")
    WriteStringN(0, "  <body>")
    WriteStringN(0, "    <h1>Page Home</h1>")
    WriteStringN(0, "    <img src=" + Chr(34) + "img_home.png" + Chr(34) + " />")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "about:HOME" + Chr(34) + ">Home</a></p>")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "about:TEST" + Chr(34) + ">Test</a></p>")
    WriteStringN(0, "  </body>")
    WriteStringN(0, "</html>")
  CloseFile(0)
  
  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Red)
      DrawText(10, 10, "HOME", #Black, #Red)
    StopDrawing()
    SaveImage(0, "img_home.png", #PB_ImagePlugin_PNG)
  FreeImage(0)
  
  CreateFile(0, "test.html")
    WriteStringN(0, "<html>")
    WriteStringN(0, "  <head>")
    WriteStringN(0, "    <base href=" + Chr(34) + "%BASEHREF%" + Chr(34) + " />")
    WriteStringN(0, "    <title>Test</title>")
    WriteStringN(0, "  </head>")
    WriteStringN(0, "  <body>")
    WriteStringN(0, "    <h1>Page Test</h1>")
    WriteStringN(0, "    <img src=" + Chr(34) + "img_test.png" + Chr(34) + " />")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "about:HOME" + Chr(34) + ">Home</a></p>")
    WriteStringN(0, "    <p><a href=" + Chr(34) + "about:TEST" + Chr(34) + ">Test</a></p>")
    WriteStringN(0, "  </body>")
    WriteStringN(0, "</html>")
  CloseFile(0)
  
  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Blue)
      DrawText(10, 10, "TEST", #Black, #Blue)
    StopDrawing()
    SaveImage(0, "img_test.png", #PB_ImagePlugin_PNG)
  FreeImage(0)
  
  MessageRequester("Info", "Fichiers crées, recompilez en sautant une ligne après le premier comment.", 0)
  
  End
EndProcedure
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par cederavic »

Soit je ne il y a un énorme truc qui m'échappe, soit le webgadget est bugé... Même un code simple comme celui là ne fonctionne pas :|

Code : Tout sélectionner

Declare.s Gen_Home()
Declare.s Gen_Test()
Declare.b NavigationCallback(Gadget, Url$) : *NavCallback = @NavigationCallback()

Global BaseHRef.s = "file:///" + ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")

If OpenWindow(0, 0, 0, 800, 600, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 0, 0, 800, 600, "#HOME")
    SetGadgetAttribute(0, #PB_Web_NavigationCallback, *NavCallback)
  Repeat : Until WaitWindowEvent(2) = #PB_Event_CloseWindow
EndIf

Procedure.b NavigationCallback(Gadget, Url$)
  Protected InternalLink.s = StringField(Url$, 2, "#")
  Debug "GADGET = " + Str(Gadget)
  Debug "URL = " + Url$
  Debug "InternalLink = " + InternalLink
  
  SetWindowTitle(0, "WebGadget : " + GetGadgetItemText(0, #PB_Web_PageTitle))
  
  Select LCase(InternalLink)
    Case "home"
      HomePage.s = Gen_Home()
      Debug "============ HOMEPAGE ============"
      Debug HomePage
      Debug "=================================="
      SetGadgetItemText(Gadget, #PB_Web_HtmlCode, HomePage)
      ProcedureReturn #False
    
    Case "test"
      TestPage.s = Gen_Test()
      Debug "============ TESTPAGE ============"
      Debug TestPage
      Debug "=================================="
      SetGadgetItemText(Gadget, #PB_Web_HtmlCode, TestPage)
      ProcedureReturn #False
  
  EndSelect

  ProcedureReturn #True
EndProcedure 
  
Procedure.s Gen_Home()
  UsePNGImageEncoder()
  HTMLCode.s
    HTMLCode + "<html>" + Chr(10)
    HTMLCode + "  <head>" + Chr(10)
    HTMLCode + "    <base href=" + Chr(34) + BaseHRef + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <title>Home</title>" + Chr(10)
    HTMLCode + "  </head>" + Chr(10)
    HTMLCode + "  <body>" + Chr(10)
    HTMLCode + "    <h1>Page Home</h1>" + Chr(10)
    HTMLCode + "    <img src=" + Chr(34) + "img_home.png" + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#HOME" + Chr(34) + ">Home</a></p>" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#TEST" + Chr(34) + ">Test</a></p>" + Chr(10)
    HTMLCode + "  </body>" + Chr(10)
    HTMLCode + "</html>" + Chr(10)
  
  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Red)
      DrawText(10, 10, "HOME", #Black, #Red)
    StopDrawing()
    SaveImage(0, "img_home.png", #PB_ImagePlugin_PNG)
  FreeImage(0)

  ProcedureReturn HTMLCode
EndProcedure
  
Procedure.s Gen_Test()
  UsePNGImageEncoder()
  HTMLCode.s
    HTMLCode + "<html>" + Chr(10)
    HTMLCode + "  <head>" + Chr(10)
    HTMLCode + "    <base href=" + Chr(34) + BaseHRef + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <title>Test</title>" + Chr(10)
    HTMLCode + "  </head>" + Chr(10)
    HTMLCode + "  <body>" + Chr(10)
    HTMLCode + "    <h1>Page Test</h1>" + Chr(10)
    HTMLCode + "    <img src=" + Chr(34) + "img_test.png" + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#HOME" + Chr(34) + ">Home</a></p>" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#TEST" + Chr(34) + ">Test</a></p>" + Chr(10)
    HTMLCode + "  </body>" + Chr(10)
    HTMLCode + "</html>" + Chr(10)

  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Blue)
      DrawText(10, 10, "TEST", #Black, #Blue)
    StopDrawing()
    SaveImage(0, "img_test.png", #PB_ImagePlugin_PNG)
  FreeImage(0)
  
  ProcedureReturn HTMLCode
EndProcedure
Enfin le code en lui même fonctionne mais on ne peut pas cliquer sur les liens...
J'vais voir aussi de l'autre coté de l'océan, sait-on jamais :arrow:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par Ar-S »

Salut Céderavic,
Tu as vu que tes liens retournent file:///C:/DOCUME~1/bouba/LOCALS~1/Temp/#TEST
et file:///C:/DOCUME~1/bouba/LOCALS~1/Temp/#HOME

Sachant que # revoie à des ancres en web, c'est normal que ça ne réponde pas.
en remplaçant tes #... par l'email de google ça marche.

En faite pas sûr d'avoir compris ton soucis..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par cederavic »

C'est pas le # qui pose problème car j'intercepte la navigation via le Callback. J'ai posé la question sur le forum anglais, apparemment ça viendrait du BaseHRef, si je l'enlève ça fonctionne bien mais je n'ai plus les images...
Voila un code plus simple pour tester :

Code : Tout sélectionner

Declare.s Gen_Home()
Declare.s Gen_Test()
Declare.b NavigationCallback(Gadget, Url$) : *NavCallback = @NavigationCallback()

Global BaseHRef.s = ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")

If OpenWindow(0, 0, 0, 800, 600, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  WebGadget(0, 0, 0, 800, 600, "#HOME")
    SetGadgetAttribute(0, #PB_Web_NavigationCallback, *NavCallback)
  Repeat : Until WaitWindowEvent(2) = #PB_Event_CloseWindow
EndIf

Procedure.b NavigationCallback(Gadget, Url$)
  Protected InternalLink.s = StringField(Url$, 2, "#")
  Debug "GADGET = " + Str(Gadget)
  Debug "URL = " + Url$
  Debug "InternalLink = " + InternalLink
  
  SetWindowTitle(0, "WebGadget : " + GetGadgetItemText(0, #PB_Web_PageTitle))
  
  Select LCase(InternalLink)
    Case "home"
      HomePage.s = Gen_Home()
      Debug "============ HOMEPAGE ============"
      Debug HomePage
      Debug "=================================="
      SetGadgetItemText(Gadget, #PB_Web_HtmlCode, HomePage)
      ProcedureReturn #False
    
    Case "test"
      TestPage.s = Gen_Test()
      Debug "============ TESTPAGE ============"
      Debug TestPage
      Debug "=================================="
      SetGadgetItemText(Gadget, #PB_Web_HtmlCode, TestPage)
      ProcedureReturn #False
  
  EndSelect

  ProcedureReturn #True
EndProcedure 
  
Procedure.s Gen_Home()
  UsePNGImageEncoder()
  HTMLCode.s
    HTMLCode + "<html>" + Chr(10)
    HTMLCode + "  <head>" + Chr(10)
    HTMLCode + "    <base href=" + Chr(34) + BaseHRef + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <title>Home</title>" + Chr(10)
    HTMLCode + "  </head>" + Chr(10)
    HTMLCode + "  <body>" + Chr(10)
    HTMLCode + "    <h1>Page Home</h1>" + Chr(10)
    HTMLCode + "    <img src=" + Chr(34) + "img_home.png" + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#HOME" + Chr(34) + ">Home</a></p>" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#TEST" + Chr(34) + ">Test</a></p>" + Chr(10)
    HTMLCode + "  </body>" + Chr(10)
    HTMLCode + "</html>" + Chr(10)
  
  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Red)
      DrawText(10, 10, "HOME", #Black, #Red)
    StopDrawing()
    SaveImage(0, "img_home.png", #PB_ImagePlugin_PNG)
  FreeImage(0)

  ProcedureReturn HTMLCode
EndProcedure
  
Procedure.s Gen_Test()
  UsePNGImageEncoder()
  HTMLCode.s
    HTMLCode + "<html>" + Chr(10)
    HTMLCode + "  <head>" + Chr(10)
    HTMLCode + "    <base href=" + Chr(34) + BaseHRef + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <title>Test</title>" + Chr(10)
    HTMLCode + "  </head>" + Chr(10)
    HTMLCode + "  <body>" + Chr(10)
    HTMLCode + "    <h1>Page Test</h1>" + Chr(10)
    HTMLCode + "    <img src=" + Chr(34) + "img_test.png" + Chr(34) + " />" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#HOME" + Chr(34) + ">Home</a></p>" + Chr(10)
    HTMLCode + "    <p><a href=" + Chr(34) + "#TEST" + Chr(34) + ">Test</a></p>" + Chr(10)
    HTMLCode + "  </body>" + Chr(10)
    HTMLCode + "</html>" + Chr(10)

  CreateImage(0, 120, 32)
    StartDrawing(ImageOutput(0))
      Box(0, 0, 120, 32, #Black)
      Box(2, 2, 116, 28, #Blue)
      DrawText(10, 10, "TEST", #Black, #Blue)
    StopDrawing()
    SaveImage(0, "img_test.png", #PB_ImagePlugin_PNG)
  FreeImage(0)
  
  ProcedureReturn HTMLCode
EndProcedure
En remplaçant :

Code : Tout sélectionner

Global BaseHRef.s = ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")
Par :

Code : Tout sélectionner

Global BaseHRef.s = "http://www.google.fr/"
Je n'ai plus de problèmes de lien mais j'ai vraiment besoin de "référencé" la page vers un dossier de mon HDD (en l'occurence là ou est le programme) car les images (et autres fichiers) sont en local, et je ne peux ni aller les chercher sur internet ni créer un serveur web sur le PC où sera l'application...

Edit : j'suis con il etait au dessus, pas bon de suivre deux fois le meme sujet sur deux forums different lol
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par Ar-S »

ok j'ai pigé le soucis, je vais faire des tests, mais surement pas avant demain. En effet si on peut pas recupérer d'image local c'est fâcheux, mais ça me parait bizarre que ça ne marche pas.

a tout hazard, en indiquant le local host en debut de chemin ? (127.0.0.1) ???
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par Ar-S »

Comme ça les images sont bien présentes.

Code : Tout sélectionner

Declare.s Gen_Home()
Declare.s Gen_Test()
Declare.b NavigationCallback(Gadget, Url$) : *NavCallback = @NavigationCallback()

Global BaseHRef.s = ReplaceString(ReplaceString(GetPathPart(ProgramFilename()), "\", "/"), " ", "%20")
Global HTMLCode.s
Global RepDef$=GetCurrentDirectory()
Global RepDefWeb$=ReplaceString(RepDef$,"\","/")

If OpenWindow(0, 0, 0, 800, 600, "WebGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	WebGadget(0, 0, 0, 800, 600, "#HOME")
  SetGadgetAttribute(0, #PB_Web_NavigationCallback, *NavCallback)
	Repeat : Until WaitWindowEvent(2) = #PB_Event_CloseWindow
EndIf

Procedure.b NavigationCallback(Gadget, Url$)
	Protected InternalLink.s = StringField(Url$, 2, "#")
	Debug "GADGET = " + Str(Gadget)
	Debug "URL = " + Url$
	Debug "InternalLink = " + InternalLink
	
	SetWindowTitle(0, "WebGadget : " + GetGadgetItemText(0, #PB_Web_PageTitle))
	
	Select LCase(InternalLink)
    Case "home"
			HomePage.s = Gen_Home()
			Debug "============ HOMEPAGE ============"
			Debug HomePage
			Debug "=================================="
			SetGadgetItemText(Gadget, #PB_Web_HtmlCode, HomePage)
			ProcedureReturn #False
      
    Case "test"
			TestPage.s = Gen_Test()
			Debug "============ TESTPAGE ============"
			Debug TestPage
			Debug "=================================="
			SetGadgetItemText(Gadget, #PB_Web_HtmlCode, TestPage)
			ProcedureReturn #False
      
  EndSelect
  
	ProcedureReturn #True
EndProcedure 

Procedure.s Gen_Home()
	UsePNGImageEncoder()
  
  HTMLCode = "<html>" + Chr(10)
  HTMLCode + "  <head>" + Chr(10)
  HTMLCode + "    <base href=" + Chr(34) + BaseHRef + Chr(34) + " />" + Chr(10)
  HTMLCode + "    <title>Home</title>" + Chr(10)
  HTMLCode + "  </head>" + Chr(10)
  HTMLCode + "  <body>" + Chr(10)
  HTMLCode + "    <h1>Page Home</h1>" + Chr(10)
  HTMLCode + "    <img src=" + Chr(34) + RepDefWeb$+"img_home.png" + Chr(34) + " />" + Chr(10)
  HTMLCode + "    <p><a href=" + Chr(34) + "#HOME" + Chr(34) + ">Home</a></p>" + Chr(10)
  HTMLCode + "    <p><a href=" + Chr(34) + "#TEST" + Chr(34) + ">Test</a></p>" + Chr(10)
  HTMLCode + "  </body>" + Chr(10)
  HTMLCode + "</html>" + Chr(10)
	
	CreateImage(0, 120, 32)
  StartDrawing(ImageOutput(0))
    Box(0, 0, 120, 32, #Black)
    Box(2, 2, 116, 28, #Red)
    DrawText(10, 10, "HOME", #Black, #Red)
  StopDrawing()
  SaveImage(0, RepDef$+"img_home.png", #PB_ImagePlugin_PNG)
	FreeImage(0)
  
	ProcedureReturn HTMLCode
EndProcedure

Procedure.s Gen_Test()
	UsePNGImageEncoder()

  HTMLCode = "<html>" + Chr(10)
  HTMLCode + "  <head>" + Chr(10)
  HTMLCode + "    <base href=" + Chr(34) + BaseHRef + Chr(34) + " />" + Chr(10)
  HTMLCode + "    <title>Test</title>" + Chr(10)
  HTMLCode + "  </head>" + Chr(10)
  HTMLCode + "  <body>" + Chr(10)
  HTMLCode + "    <h1>Page Test</h1>" + Chr(10)
  HTMLCode + "    <img src=" + Chr(34) + RepDefWeb$+"img_test.png" + Chr(34) + " />" + Chr(10)
  HTMLCode + "    <p><a href=" + Chr(34) + "#HOME" + Chr(34) + ">Home</a></p>" + Chr(10)
  HTMLCode + "    <p><a href=" + Chr(34) + "#TEST" + Chr(34) + ">Test</a></p>" + Chr(10)
  HTMLCode + "  </body>" + Chr(10)
  HTMLCode + "</html>" + Chr(10)
  
	CreateImage(0, 120, 32)
  StartDrawing(ImageOutput(0))
    Box(0, 0, 120, 32, #Black)
    Box(2, 2, 116, 28, #Blue)
    DrawText(10, 10, "TEST", #Black, #Blue)
  StopDrawing()
  SaveImage(0, RepDef$+"img_test.png", #PB_ImagePlugin_PNG)
	FreeImage(0)
	
	ProcedureReturn HTMLCode
EndProcedure
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Navigation bloquée avec #PB_WebGadget_HtmlCode

Message par cederavic »

Oui ça marche avec le chemin complet dans les balises img ou autres, Freak m'y a fait penser sur le forum EN :P Mais le problème avec BaseHRef est toujours là (bien que je puisse m'en passer maintenant, kinkin du forum m'a dit un jour de ne pas fermer les yeux sur le moindre "bug" 8) )
Répondre