Modification d'une page web dynamiquement ?
Modification d'une page web dynamiquement ?
Salut,
Est t' il possible de modifier une page web dynamiquement dans un webgadget, c'est à dire que lorsque j'affiche une page web, je souhaiterais ajouter des informations sur cette celle-ci.
Où est t' on obligé d'enregistrer cette page sur le disque, la modifier pour ensuite la ré-afficher?
Est t' il possible de modifier une page web dynamiquement dans un webgadget, c'est à dire que lorsque j'affiche une page web, je souhaiterais ajouter des informations sur cette celle-ci.
Où est t' on obligé d'enregistrer cette page sur le disque, la modifier pour ensuite la ré-afficher?
Re: Modification d'une page web dynamiquement ?
PB ne te permet pas à ma connaissance d'avoir accès au source code d'un webgadget ( Feature à demander ? )
Comme tu le dis , tu est mieux à passer par un fichier temporaire.
@+
Comme tu le dis , tu est mieux à passer par un fichier temporaire.
@+
Re: Modification d'une page web dynamiquement ?
Je pense aussi que le fichier temporaire est plus judicieux dans se cas là.
@++
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Modification d'une page web dynamiquement ?
Voilà je crois que tu as ta réponse- SetGadgetItemText(): avec #PB_Web_HtmlCode comme 'Element' le code html peut être INSéré dans le Gadget.
- GetGadgetItemText(): LES constantes suivantes peuvent être utilisées pour obtenir une information:
#PB_Web_HtmlCode : Renvoie le code html du gadget.
#PB_Web_PageTitle : Renvoie le titre de la page affichée.
#PB_Web_StatusMessage: Renvoie le message actuel de la barre d'état.
#PB_Web_SelectedText : Renvoie le texte sélectionné à l'intérieur du gadget.

The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me
Ambient Reminiscences - Mouchalagane
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me
Ambient Reminiscences - Mouchalagane
Re: Modification d'une page web dynamiquement ?
Ou bien tu affiche une page web en PHP que tu créer et envoie les arguments à mesure.
Le problème, c'est qu'il te faut un serveur web ou local, mais ça laisse quand même plus de flexibilité.
Le problème, c'est qu'il te faut un serveur web ou local, mais ça laisse quand même plus de flexibilité.
Re: Modification d'une page web dynamiquement ?
Il est possible de faire beaucoup plus de choses que ça, regarde sur le forum anglais.
Re: Modification d'une page web dynamiquement ?
SetGadgetItemText à l'air de buguer, j'ai une erreur de script et les liens ne fonctionne plus et l'image Google n' apparait plus.
Code : Tout sélectionner
Enumeration
#Web
#Button1
EndEnumeration
If OpenWindow(0,0,0,800,400,"Web",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
WebGadget(#Web,0,0,800,360,"")
ButtonGadget(#Button1,10,370,100,20,"Modifier la page")
SetGadgetText(#Web,"http://www.google.com")
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_Gadget
Select EventGadget()
Case #Button1
Text.s=GetGadgetItemText(#Web, #PB_Web_HtmlCode)
Text=ReplaceString(Text,"plus","plus nico",#PB_String_NoCase)
SetGadgetItemText(#Web, #PB_Web_HtmlCode,Text)
EndSelect
EndIf
Until Event=#PB_Event_CloseWindow
EndIf
Re: Modification d'une page web dynamiquement ?
on dirai que la fonction abouti , mais que les scripts de la pages, n'apprécie pas la manoeuvre 
oui c'est bien les scripts Js le probleme !!
regarde avec une pages sans script JS ça marche

oui c'est bien les scripts Js le probleme !!
regarde avec une pages sans script JS ça marche
Code : Tout sélectionner
Enumeration
#Web
#Button1
EndEnumeration
If OpenWindow(0,0,0,800,400,"Web",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
WebGadget(#Web,0,0,800,360,"")
ButtonGadget(#Button1,10,370,100,20,"Modifier la page")
SetGadgetText(#Web,"http://michel.dobro.free.fr/pages_html/liens.htm")
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_Gadget
Select EventGadget()
Case #Button1
Text.s=GetGadgetItemText(#Web, #PB_Web_HtmlCode)
Text.s=ReplaceString(Text.s,"PureBasic","NICO",#PB_String_NoCase)
SetGadgetItemText(#Web, #PB_Web_HtmlCode,Text.s)
EndSelect
EndIf
Until Event=#PB_Event_CloseWindow
EndIf
Re: Modification d'une page web dynamiquement ?
dans mon stock j'ai ce code la
Code : Tout sélectionner
; voir ici : http://msdn.microsoft.com/en-us/library/ms531073(VS.85).aspx
Declare StringToBStr (string$)
#SIZEOF_WORD=2
Enumeration
#bold
#link
#link_google
#insert_image
#insert_image2
#edit_mode
#web_gadget
#Window
EndEnumeration
Procedure.l Ansi2Uni(string.s) ; Converts normal (Ansi) string To Unicode
*out = AllocateMemory(Len(string)*2 * #SIZEOF_WORD)
MultiByteToWideChar_(#CP_ACP, 0, string, -1, *out, Len(string))
ProcedureReturn *out
EndProcedure
If OpenWindow(#Window, 0, 0, 800, 600, "WebGadget Edit", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#Window))
WebGadget(#web_gadget, 5, 5, 790, 500, "http://www.purebasic.com/")
ButtonGadget(#bold, 5, 540, 100, 25, "Bold")
ButtonGadget(#link, 110, 540, 100, 25, "Link...")
ButtonGadget(#link_google, 210, 540, 100, 25, "Link google")
ButtonGadget(#insert_image, 310, 540, 100, 25, "Insert image...")
ButtonGadget(#insert_image2, 410, 540, 200, 25, "Insert image ess.jpg (don't work !)")
ButtonGadget(#edit_mode, 210, 510, 100, 25, "Edit mode",#PB_Button_Toggle)
;{initialisation webgadget
; get webgadgets IWebBrowser2 interface:
Browser.IWebBrowser2 = GetWindowLong_(GadgetID(#web_gadget), #GWL_USERDATA)
; wait For page To be loaded..
Repeat
While WindowEvent(): Wend
Delay(1)
Browser\get_Busy(@IsBusy.l)
Until IsBusy = 0
; get the document interface
If Browser\get_Document(@DocumentDispatch.IDispatch) = #S_OK
; query For IHTMLDocument3:
If DocumentDispatch\QueryInterface(?IID_IHTMLDocument2, @Document.IHTMLDocument2) = #S_OK
; here you have a IHTMLDocument2 pointer, can work with it...
Document\put_designMode("Off") ; Turns off Edit Mode
;Document\put_designMode(Ansi2Uni("On")) ; Turns on Edit Mode ;
CmdTarget.IOleCommandTarget
If DocumentDispatch\QueryInterface(?IID_IOleCommandTarget, @CmdTarget.IOleCommandTarget) = #S_OK
;CmdTarget\Exec(?CGID_MSHTML, #IDM_2D_POSITION, #OLECMDEXECOPT_DONTPROMPTUSER, @var, NULL) ;Lets you drag drop items
; CmdTarget\Release()
EndIf
Document\Release()
EndIf
DocumentDispatch\Release()
EndIf
;}
edit=0
Success.VARIANT
Command.VARIANT
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget ;checks For the events
Select EventGadget() ;Checks For Gadget Events
Case #bold
Command\vt = #VT_BSTR
Command\bstrVal = 0
Document\execCommand("Bold", 0, @Command , @Success)
Case #link
Command\vt = #VT_BSTR
Command\bstrVal = 0
Document\execCommand("CreateLink", 1, @Command , @Success)
Case #link_google
Command\vt = #VT_BSTR
Command\bstrVal = Ansi2Uni("http://www.google.fr")
Document\execCommand("CreateLink", 0, @Command , @Success)
Case #insert_image
Command\vt = #VT_BSTR
Command\bstrVal = 0
Document\execCommand("InsertImage", 1, @Command , @Success)
Case #insert_image2
CallDebugger
Command\vt = #VT_BSTR
; Command\bstrVal = Ansi2Uni("far_breton.jpg")
Command\bstrVal = StringToBStr("D:\PureBasic\dobro\ExemplePerso\internet\far_breton.jpg")
Document\execCommand("insertimage",#False, @Command , @Success)
Case #edit_mode
If edit=1
edit=0
Document\put_designMode("Off")
Else
edit=1
Document\put_designMode("On")
EndIf
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
If CmdTarget
CmdTarget\Release()
EndIf
EndIf
EndIf
End
Procedure StringToBStr (string$) ; By Zapman Inspired by Fr34k
Protected Unicode$ = Space(Len(string$)* 2 + 2)
Protected bstr_string.l
PokeS(@Unicode$, string$, -1, #PB_Unicode)
bstr_string = SysAllocString_(@Unicode$)
ProcedureReturn bstr_string
EndProcedure
DataSection
IID_IHTMLDocument2: ; {332c4425-26cb-11d0-b483-00c04fd90119}
Data.l $332C4425
Data.w $26CB, $11D0
Data.b $B4, $83, $00, $C0, $4F, $D9, $01, $19
IID_IOleCommandTarget: ; {b722bccb-4e68-101b-a2bc-00aa00404770}
Data.l $B722BCCB
Data.w $4E68, $101B
Data.b $A2, $BC, $00, $AA, $00, $40, $47, $70
CGID_MSHTML: ; { 0xDE4BA900, 0x59CA, 0x11CF, { 0x95, 0x92, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 } }
Data.l $DE4BA900
Data.w $59CA, $11CF
Data.b $95, $92, $44, $45, $53, $54, $00, $00
EndDataSection
Re: Modification d'une page web dynamiquement ?
Oui je connais ca code qui permet de mette une page en mode édition mais c'est un peu différent.
J'ai trouvé une solution (code que j'avais déjà réalisé mais que je n'avais plus), je la poste dans la section Astuces.
J'ai trouvé une solution (code que j'avais déjà réalisé mais que je n'avais plus), je la poste dans la section Astuces.