Autore Topic: Gambas e JavaScript  (Letto 1057 volte)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Gambas e JavaScript
« il: 08 Dicembre 2016, 20:56:09 »
Mi riferisco a questa discussione apparsa sulla ML, ma anche a quella del sito spagnolo riportata da vuott.
Mi sono creato un piccolo progettino per provare a fare con JavaScript quello che chiede Jorge.
Sono interessato anche io a comprendere come è possibile implementare in modo utile e dinamico il JS in Gambas.
Allego il progetto (è tipo quello di Jorge, credo più corretto e facile per fare prove) sperando che qualcuno pratico di JS ci riesca e mi aiuti a capire, perché io proprio...

Denghiu (come direbbe il buon Biscardi)

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #1 il: 09 Dicembre 2016, 00:25:29 »
Ho l'impressione che la la funzione "setCaretPosition( )" nel file .js non venga chiamata.   :-X
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #2 il: 09 Dicembre 2016, 09:17:55 »
Ho l'impressione che la la funzione "setCaretPosition( )" nel file .js non venga chiamata.   :-X

Intanto c'è l'errore della Path del file .js di cui mi scuso  :-[ non so se ti stai riferendo a quello oppure...

Allego il file corretto che però continua a non funzionare  :mad:

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #3 il: 09 Dicembre 2016, 14:34:27 »
... non so se ti stai riferendo a quello oppure...
No.


però continua a non funzionare 
Non capisco perché debba funzionare.    :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #4 il: 09 Dicembre 2016, 17:07:04 »
Alcune prove fatte senz'altro non possono funzionare, ma se chiamo le funzioni così dovrebbe essere giusto:
Codice: [Seleziona]
WebView1.Eval(Subst("&1", s))
  'WebView1.Eval(s)
Anche perché ho provato con codice più semplice ma anche con la stessa prova (<textarea id="Texto">) fatta da Jorge, quindi continuo a non capire.
Se la funzione lavora nella text come mai nella window non funziona?

Mi dispiace ma io non ci capisco, pazienza.
Riprenderò in mano la questione dopo le vacanze.
 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #5 il: 09 Dicembre 2016, 17:41:01 »
Se la funzione lavora nella text come mai nella window non funziona?
Per "window" intendi il "WebView" del progetto Gambas ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #6 il: 09 Dicembre 2016, 17:45:18 »
Se la funzione lavora nella text come mai nella window non funziona?
Per "window" intendi il "WebView" del progetto Gambas ?

Si credo che WebView si comporti come un browser e che pertanto ci si possa riferire a lui come window.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #7 il: 09 Dicembre 2016, 17:55:54 »
Si credo che WebView si comporti come un browser e che pertanto ci si possa riferire a lui come window.
Io suppongo, invece, che il problema sia proprio questo.
Infatti come gli assegni un "identificativo" all'interno del codice html/javascript ?   :-\
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #8 il: 09 Dicembre 2016, 18:05:07 »
Si credo che WebView si comporti come un browser e che pertanto ci si possa riferire a lui come window.
Io suppongo, invece, che il problema sia proprio questo.
Infatti come gli assegni un "identificativo" all'interno del codice html/javascript ?   :-\

Ma la funzione non deve agire sull'identificativo "Texto"?
Per quale motivo se c'è una textarea lo riconosce senza che gli passi l'oggetto?
Purtroppo la mia dis-conoscenza di JS è troppo superficiale...  :rolleyes:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #9 il: 09 Dicembre 2016, 18:11:39 »
Per quale motivo se c'è una textarea lo riconosce senza che gli passi l'oggetto?

Nuova domanda: ma la "textarea", di cui parli, è l'oggetto di Gambas oppure è l'oggetto del protocollo HTML ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #10 il: 09 Dicembre 2016, 18:21:18 »
Per quale motivo se c'è una textarea lo riconosce senza che gli passi l'oggetto?

Nuova domanda: ma la "textarea", di cui parli, è l'oggetto di Gambas oppure è l'oggetto del protocollo HTML ?

HTML, mi riferisco sempre al codice di Jorge.
Intendi dire che se passo il riferimento a <div id="Texto"> è diverso che se passo il riferimento a <textarea id="Texto"> qui passo un oggetto e la no?
Ma io non saprei... cosa passare non è come in Gambas WebView1.DivId  :-\
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.721
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #11 il: 09 Dicembre 2016, 18:25:31 »
HTML....
Intendi dire che se passo il riferimento a <div id="Texto"> è diverso che se passo il riferimento a <textarea id="Texto"> qui passo un oggetto e la no?
Il problema, io suppongo sia proprio quello.   :-X
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #12 il: 13 Dicembre 2016, 16:01:04 »
La funzione javascript setCaretPosition non fa nulla per il semplice fatto che al suo interno richiama delle funzioni (setSelectionRange e createTextRange) che non possono riferirsi ad un elemento <DIV> (come è "Texto") ma devono far riferimento ad un elemento <INPUT> di type="text".
Inoltre essendoci un 'else if' in quella funzione sarebbe richiesto un ulteriore 'else' altrimenti il ramo finale della condizione (non essendo valide le altre due) non viene elaborato e non ci si rende conto dell'errore in atto.

Non ho ben capito il senso di questo programma ma vedo se riesco ad adattarlo...  :ciao:

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.243
  • Tonno verde
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #13 il: 13 Dicembre 2016, 16:22:22 »
Ciao Gianfranco (tutto attaccato?),
intanto grazuie per la risposta...
La funzione javascript setCaretPosition non fa nulla per il semplice fatto che al suo interno richiama delle funzioni (setSelectionRange e createTextRange) che non possono riferirsi ad un elemento <DIV> (come è "Texto") ma devono far riferimento ad un elemento <INPUT> di type="text".
Inoltre essendoci un 'else if' in quella funzione sarebbe richiesto un ulteriore 'else' altrimenti il ramo finale della condizione (non essendo valide le altre due) non viene elaborato e non ci si rende conto dell'errore in atto.

Purtroppo, come detto, io il JS non lo conosco se non in modo moooolto superficiale non avendo mai fatto nulla per il web.
Quindi ciò che mi dici lo accetto ma poco lo comprendo  :-[

Citazione
Non ho ben capito il senso di questo programma ma vedo se riesco ad adattarlo...  :ciao:

Veramente non ho capito molto bene neanche io, Jorge sta facendo un controllore ortografico (Catalano) per il suo htEditor lo puoi scaricare dalla Software farm (esempi) e chiedeva come avrebbe potuto spostare il caret da programma e si poneva il quesito come da me riportato (anche lui di JS ci capisce poco).
Se riesci a rispondere al quesito potresti postarlo sulla ML ufficiale oppure se credi posso farlo io a tuo nome.

Se puoi mettere un po di spiegazioni per farmi capire sull'esempio pratico te ne sarei veramente grato.

Ciao
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline gianfry56

  • Gambero
  • **
  • Post: 78
    • Mostra profilo
Re:Gambas e JavaScript
« Risposta #14 il: 13 Dicembre 2016, 16:31:49 »
Sostanzialmente l'unica modifica da fare dovrebbe essere questa (nel file new.html):
il corpo (body) dell'html:
Codice: [Seleziona]
  <body>
    <div id="Texto">
      Hello world, i'm here
    </div>
  </body>

va sostituito con questo:
Codice: [Seleziona]
  <body>
    <div>
    <input type="text" id="Texto" size=20 value="Hello world, i'm here"/>
    </div>
  </body>

ho provato e funziona (sempre che lo scopo sia quello di spostare il cursore a destra di un tot di caratteri....)