Newsgroup: it.comp.lang.javascript
Titolo: Aggiungere uno style sul testo selezionato

Dovrei usarlo solo con IE, ma pur dopo vari tentativi non ci sono
riuscito. :-/
Qui sotto posto quel che ho provato:
<html><head>
<script type="text/javascript">
 function paint() {
//questo mi restituisce: "undefined"
 var sl;
sl=document.selection.createRange().text.replace(/(.*)/,"<span
style='background:black;color:lime'>$1</span>");
 var slText;
slText=sl.innerHTML;
document.selection.createRange().text=slText;
/*
//questo segnala l'errore: "style e' nullo o non e' un oggetto"
 var sl;
sl=document.selection.createRange().text;
document.selection.createRange().text=sl;
 var slText;
slText=sl.value;
slText.style.background="black";
slText.style.color="lime";
*/
}
</script>
</head>
<body>
<div>Testo da selezionare in parte, o per intero.</div><br />
<input type="button" value="aggiungi_style" onclick="paint();" />
</body></html>
Non so se sia possibile farlo, ma se lo fosse potrei avere un aiuto? :-)
-- 
    * b *
  *   y   *
*   Piero   *
[ /errare humanum est/ ] 

 :-)
Beh, la mancanza di riscontri, me lo fa ritenere *non possibile*. :-/
-- 
    * b *
  *   y   *
*   Piero   *
#v+
Ho nascosto qualche grammo di cervello per uso personale. 


-- 
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."


Si lo conoscevo, e c'avevo provato... invano. :-/
Mentre si riesce a trasformare il testo da minuscolo a maiuscolo, o
viceversa, sembra impossibile applicare uno stile.
Tentando con l'esempio sotto, come lo modificheresti?
<html><head>
<script type="text/javascript">
 function upCase() {
 var sl;
sl=document.selection.createRange().text.replace(/.*/g,function(aa){return aa.substr().toUpperCase()});
document.selection.createRange().text=sl;
}
</script>
</head>
<body>
<div>Testo da selezionare in parte,<br />o per intero.</div><br />
<input type="button" value="maiuscolo" onclick="upCase();" />
</body></html>
-- 
    * b *
  *   y   *
*   Piero   *
#v+
M'hanno regalato un libro, ma si sono dimenticati del software. 

 Tentando con l'esempio sotto, come lo modificheresti?
Userei execCommand o pasteHTML; non la propriet� text, che se ben
ricordo si applica appunto solo al testo (e un testo non ha stile
ovviamente), tant'� che in IE esiste anche htmlText (attenzione �
read-only, non provare a usarla al posto di text).


 Userei execCommand o pasteHTML; non la propriet� text, che se ben
    ...skipped!
Ti ringrazio per avermi indirizzato sulla giusta strada. :-)
In execCommand non ho trovato nulla di attinente, mentre in pasteHTML ho
trovato la soluzione:
<html><head>
<script type="text/javascript">
 function paint(obj) {
    var obj=document.selection.createRange().text;
    var sel = document.selection;
if (sel!=null) {
    var rng = sel.createRange();
    if (rng!=null)
        rng.pasteHTML("<span style='background-color:black;color:lime'>"+obj+"</span>");
}}
</script>
</head>
<body>
<div>Testo da selezionare in parte, o per intero.</div><br />
<input type="button" value="colora" onclick="paint(this);" />
</body></html>
Questo script voglio utilizzarlo per imitare i "verbatim marks" nella
visualizzazione del testo relativo al codice:
http://foory.de/thw/slrn/manual/slrn-manual-6.html#process_verbatim_marks
Com'� noto, quasi tutti i NR visualizzano l'emoticon come immagini ed il
testo in grassetto, sottolineato o corsivo se inserito fra "*_/", per�
questa feature molto gradita, impedisce di vedere correttamente il
codice, per esempio nelle regexp, ma non solo.
I "verbatim marks" visualizzano correttamente il testo inserito fra #v+
e #v- ignorando tali feature ed evidenziandolo. Un esempio qui sotto:
#v+
emoticon :-) :-/ :-D *bold*, _underline_, /italic/
#v-
lo stesso testo senza i "verbatim marks":
emoticon :-) :-/ :-D *bold*, _underline_, /italic/
Poi poster� il link all'immagine del messaggio.
Si, Fidolook plugin di OE, completamente scriptable, ha perfino questa
feature, quel geniaccio di George Hazan non si � fatto mancare nulla, e
sono certo che se tu lo provassi, avresti di che divertirti.
Se io riesco a farci di tutto, chiss� cosa ci combineresti tu! :-D
-- 
    * b *
  *   y   *
*   Piero   *
#v+
cogito ergo sum 

 Poi poster� il link all'immagine del messaggio.
http://i41.tinypic.com/2mcykhf.png
    ...skipped!
-- 
    * b *
  *   y   *
*   Piero   *
#v+
Da noi le perle del pensiero sono prodotte dalle cozze. 

 sono certo che se tu lo provassi, avresti di che divertirti.
Per carit�, vade retro OE! ;)


 Per carit�, vade retro OE! ;)
Non sai cosa ti perdi. :-D
-- 
    * b *
  *   y   *
*   Piero   *
#v+
errare humanum est