When I edit the content (add some text), it is not possible to read the changed HTML code (see button "get html").
Any ideas ?
Code: Select all
EnableExplicit
Enumeration FormGadget
#web_gadget
#Btn_bold
#Btn_italics
#Btn_underline
#Btn_read_html
EndEnumeration
Define event
Define HtmlCode$= "<html><body>" +
"<div contenteditable>" +
"Hello World (from inline HTML)" +
"</div>" +
"</body></html>"
Declare get_html_Text()
Declare format_Text(tag_begin$, tag_end$)
; ---- read (changed) html code
Procedure get_html_Text()
Debug GetGadgetItemText(#web_gadget, #PB_Web_HtmlCode)
; ??
EndProcedure
;---- format selected text
Procedure format_Text(tag_begin$, tag_end$)
Protected selected_text$ = GetGadgetItemText(#web_gadget, #PB_Web_SelectedText)
Protected html_code$ = GetGadgetItemText(#web_gadget, #PB_Web_HtmlCode)
Protected new_code$ = tag_begin$ + selected_text$ + tag_end$
Protected new_html_code$ = ""
Protected start_pos, text_pos
; get start position of 'visible' text
start_pos = FindString(html_code$, "<div contenteditable>")+21-1
; get start position of selected text
text_pos = FindString(html_code$, selected_text$, start_pos)
; expand selected html code with tags
new_html_code$ = ReplaceString(html_code$, selected_text$, new_code$, #PB_String_CaseSensitive,text_pos,1)
; remove duplicate tags
new_html_code$ = ReplaceString(new_html_code$, tag_begin$ + tag_begin$, tag_begin$)
new_html_code$ = ReplaceString(new_html_code$, tag_end$ + tag_end$, tag_end$)
; refresh inline Text
SetGadgetItemText(#web_gadget, #PB_Web_HtmlCode, new_html_code$)
EndProcedure
; -----------------------------------------------------------------
OpenWindow(0, 0, 0, 600, 400, "Editable HTML Content",
#PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget)
ButtonGadget(#Btn_read_html, 5, 5, 85, 25, "get html")
ButtonGadget(#Btn_bold, 95, 5, 85, 25, "bold")
ButtonGadget(#Btn_italics, 185, 5, 85, 25, "italics")
ButtonGadget(#Btn_underline,275, 5, 85, 25, "underline")
WebGadget(#web_gadget, 0, 35, 600, 400, "")
SetGadgetItemText(#web_gadget, #PB_Web_HtmlCode, HtmlCode$)
; -----------------------------------------------------------------
Repeat
event = WaitWindowEvent()
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_bold : format_Text("<b>","</b>")
Case #Btn_italics : format_text("<i>","</i>")
Case #Btn_underline : format_text("<u>","</u>")
Case #Btn_read_html : get_html_Text()
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow