get the selected text in JavaScript

  • Creatore Discussione Creatore Discussione daff
  • Data di inizio Data di inizio

daff

Nuovo Utente
12 Set 2013
5
0
0
Buonasera ,

Ho un Bookmarklet che acquisisce gli URL dalla barra di navigazione di qualsiasi sito per poi rispondere con un URL Accorciato con un servizio di url shortener ...

Invece di acquisire gli Url della barra di navigazione è possibile acquisire gli URL selezionati in una pagina web?

Codice:
javascript:var%20e=document.createElement('script');e.setAttribute('language','javascript');e.setAttribute('src','https://server/bookmarlet/load.js?url='+encodeURIComponent(location.href));document.body.appendChild(e);void(0);
 
Cioè quanto uno seleziona un url te lo dovresti salvare da qualche parte?
 
Cioè quanto uno seleziona un url te lo dovresti salvare da qualche parte?

Lo scopo dello "script" è accorciare i link selezionati con un servizio già predisposto per questo lavoro tipo goo.gl o bit.ly ecc,tutto qua. Al nostro click Javascript acquisisce l'url dalla barra di navigazione e la invia all'app esterna che risponde con un url "accorciato"
 
Ultima modifica:
Ok ma quindi tu con questa frase:
Invece di acquisire gli Url della barra di navigazione è possibile acquisire gli URL selezionati in una pagina web?
Stai chiedendo come inserire in una variabile un testo che è stato selezionato? Per poi mandare la variabile (contenente il testo) al servizio per accorciare l'url.
 
SI .esattamente .io semplicemente vorrei che catturi l'URL che seleziono io col mouse nel sito visualizzato e non quello che ce nella barra di navigazione.
 
Ultima modifica:
Attivando una funzione sul lato client (la selezione) puoi attivare del codice js che vada a mettere il testo selezionato in una variabile js appunto.
Codice:
<script text='text/javascript'>
     function testoEvidenziato() {
          var testoevidenziato= window.getSelection();
          alert (testoevidenziato.toString());
     }
</script>
La funzione va richiamata in qualche modo e potresti fare in questo modo (poi magari trovi altri metodi più smart):
Codice:
<button onclick='testoEvidenxiato()'>clicca qui</button>
Prova a vedere se funziona intanto.
 
ok grazie ,però il problema rimane come includere il tuo codice nel mio "Bookmarklet" da farlo rimanere sempre un "Bookmarklet" , secondo me bisogna rimpiazzare (location.href)) ...comunque questo mio JS è già predisposto ad inviare la variabile catturata all'app esterna ....


Codice:
javascript:var%20e=document.createElement('script');e.setAttribute('language','javascript');e.setAttribute('src','https://server/bookmarlet/load.js?url='+encodeURIComponent(location.href));document.body.appendChild(e);void(0);
 
Prova a cambiare questo: location.href
con questo: testoevidenziato.toString()
Però devi dichiarare la variabile testoevidenziato fuori dalla funzione altrimenti poi dopo non la vede.
 
Prova a cambiare questo: location.href
con questo: testoevidenziato.toString()
Però devi dichiarare la variabile testoevidenziato fuori dalla funzione altrimenti poi dopo non la vede.

grazie ,ho risolto facendo riferimento al tuo codice sostituendo location.href con document.getSelection().getRangeAt(0)
 

Discussioni simili