Ho l'impressione che la la funzione "setCaretPosition( )" nel file .js non venga chiamata. :-X
... non so se ti stai riferendo a quello oppure...No.
però continua a non funzionareNon capisco perché debba funzionare. :-\
WebView1.Eval(Subst("&1", s))
'WebView1.Eval(s)
Se la funzione lavora nella text come mai nella window non funziona?Per "window" intendi il "WebView" del progetto Gambas ?
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.Io suppongo, invece, che il problema sia proprio questo.
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 ? :-\
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 ?
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....Il problema, io suppongo sia proprio quello. :-X
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?
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:
<body>
<div id="Texto">
Hello world, i'm here
</div>
</body>
<body>
<div>
<input type="text" id="Texto" size=20 value="Hello world, i'm here"/>
</div>
</body>
WebView1.Eval(Subst("document.execCommand('&1', false, false)", s))
WebView1.Eval(s)
va sostituito con questo:Infatti era quello che sottoponevo all'attenzione di Gianluigi: l'assenza di un elemento valido. Però, se non erro, il suo tentativo era di ottenere lo spostamento del cursore direttamente sull'oggetto WebView di Gambas anziché all'interno dell'oggetto Textarea di Html.
......
ho provato e funziona
WebView1.SetFocus()
WebView1.html &= "··" 'two "middle points" is something I have no seen in my life.
WebView1.Eval("document.execCommand('findString',false,'··')") 'search and select it...
WebView1.Eval("document.execCommand('insertText',false,'')") 'and delete it. The cursor remains at the end of text.
Però, se non erro, il suo tentativo era di ottenere lo spostamento del cursore direttamente sull'oggetto WebView di Gambas anziché all'interno dell'oggetto Textarea di Html.
Se per 'caret' intendiamo il cursore classico (quello di solito lampeggiante) che possiamo posizionare con il mouse e possiamo spostare con i tasti freccia non c'è dubbio che la scelta possibile, in una pagina html, sia solo un oggetto <input> oppure un <textarea>.
Se lo scopo invece è quello di selezionare del testo presente nella pagina html, per mezzo di codice, allora è un'altro discorso... ma in quel caso non può esistere un 'caret' fisico posizionato all'interno del testo... :nono:
Questo progetto vi permette di spostare il cursore in una 'pseudo-pagina web' solo perché l'oggetto WebView è un oggetto editabile e Desktop.SendKeys vi permette di spostarvi all'interno, ma non è opera di javascript...
Se non ho capito male, l'oggetto del post era 'come avrebbe potuto spostare il caret da programma' in javascript...
Ma forse sono fuori strada :mad:
.... e sembrerebbe anche Vuott (ma non sono sicuro) sostengono che lo spostamento del cursore in una pagina WebView si può fare con JS senza trucchi di sorta.No, io ho solo affermato che quella soluzione con <DIV> non andava bene.
Questo progetto vi permette di spostare il cursore in una 'pseudo-pagina web' solo perché l'oggetto WebView è un oggetto editabile e Desktop.SendKeys vi permette di spostarvi all'interno, ma non è opera di javascript...Tenendo conto che non ho mai visto cursori sulle pagine html in quanto tali, io credo che due siano le possibili strade:
.... e sembrerebbe anche Vuott (ma non sono sicuro) sostengono che lo spostamento del cursore in una pagina WebView si può fare con JS senza trucchi di sorta.No, io ho solo affermato che quella soluzione con <DIV> non andava bene.
Purtroppo non mi ricordo cosa ho detto :rolleyes:Questo progetto vi permette di spostare il cursore in una 'pseudo-pagina web' solo perché l'oggetto WebView è un oggetto editabile e Desktop.SendKeys vi permette di spostarvi all'interno, ma non è opera di javascript...Tenendo conto che non ho mai visto cursori sulle pagine html in quanto tali, io credo che due siano le possibili strade:
o WebView è formato anche da un altro oggetto tstuale, come una sorta di "Ospite", il quale oggetto conferisce a WebView la capacità anche di scrivere del testo, visibile poi sul WebView medesimo; oppure la risorsa webkit, sulla quale si basa l'oggetto WebView di Gambas, possiede essa stessa una proprietà, una capacità che consente di scrivere e mostrare il cursore.
Se è vera la prima ipotesi, un accesso e gestione diretta della proprietà .Text (o .Richtext) di tale oggetto "Ospite" appare improponibile, poiché l'oggetto WebView non posiede una prorpietà .Children (c0me invece è posseduta da taluni oggetti). Dal che si dovrebbe ipotizzare la presenza di un oggetto "Ospite" non visibile, non accessibile dall'oggetto "Ospitante" (e ciò è possibile come è stato egregiamente dimostrato da Gianluigi in un'altra discussione o in un dialogo privato con me).
Se è vera la seconda, bisogna capire se c'è un comando specifico per far "spostare" il cursore, e quale sia. ...ma siamo sempre in un ambito extra-javascript, come per altro verso indicato da gianfry56.
Però un Children esiste WebView.Current.Children il figlio del corrente Webframe di Webview.Eh, ma la guida in-linea parla di "...of all child frames". Infatti, in condizioni normali verificando il numero di "Figli":
Più precisamente è una raccolta di tutti i figli.
Print WebView1.Current.Children.Count
Questo comando è custodito gelosamente dalle vestali giessine agli ordini di Moviga e BenoitEh !
Però un Children esiste WebView.Current.Children il figlio del corrente Webframe di Webview.Eh, ma la guida in-linea parla di "...of all child frames". Infatti, in condizioni normali verificando il numero di "Figli":
Più precisamente è una raccolta di tutti i figli.Codice: [Seleziona]dà zero.Print WebView1.Current.Children.Count
Print WebView1.Current.Children[0].Name
Questo comando è custodito gelosamente dalle vestali giessine agli ordini di Moviga e BenoitEh !
Si potrebbe dare uno sguardo ai sorgenti, ma agli effetti pratico poi.... non servirebbe. :-\