clipboard functions

Using Javascript from SpiderBasic
User avatar
William Van Hoecke
Posts: 50
Joined: Tue Oct 22, 2019 12:09 pm

clipboard functions

Post by William Van Hoecke »

Hello,
I am trying this 'navigator.clipboard'
The COPY function seems to work fine
The PASTE function however behaves strangly.
The alertbox reports that PASTE worked, but the procedure returns an unchanged 'none'
The alertbox als seems to pop up after the procedure returns ????

Anyone knows how the handle the async behavier.

Code: Select all

Enumeration FormGadget
  #Editorwindow
  #Editorfield
  #button_editor_close
  #button_editor_edit
  #button_editor_copy
  #button_editor_paste
  #button_clienteditorcopy
EndEnumeration

Procedure setclipboardtext(text.s)
 !navigator.clipboard.writeText(v_text)
 !  .then(() => {
 !   // Success!
 ! })
 ! .catch(err => {
 !   alert("setclipboard failed:" . err);
 !   })                                      ;
EndProcedure

 Procedure.s getclipboardtext()
 text.s = "none"
 ! navigator.clipboard.readText()
 !  .then(v_text => {
 !     alert(v_text);
 !  })
 !  .catch(err => {
 !     alert("getclipboard failed:" . err);
 !   })                                      ;
 ProcedureReturn text.s
 EndProcedure

 
 Procedure COPY()
  setclipboardtext(GetGadgetText(#Editorfield))
EndProcedure

Procedure PASTE()
  tmp.s = GetGadgetText(#Editorfield)
  SetGadgetText(#Editorfield,tmp + getclipboardtext())
EndProcedure

;EDITOR WINDOW
;============================================================================================================================
OpenWindow(#Editorwindow,10,10,520,520, "COPY / PASTE TEST...",#PB_Window_TitleBar | #PB_Window_AllowSelection)
SetWindowColor(#Editorwindow,RGB(0,0,125))
EditorGadget(#Editorfield,10,10,500,300,#PB_Editor_WordWrap)
ButtonGadget(#button_editor_copy,10,320,500,50,"C O P Y")
ButtonGadget(#button_editor_paste,10,380,500,50, "P A S T E")
SetGadgetText(#Editorfield,GetGadgetText(sourcetextfield))
BindGadgetEvent(#button_editor_copy, @COPY()) 
BindGadgetEvent(#button_editor_paste, @PASTE())