Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Bbcode su selezione

  1. #1
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273

    Bbcode su selezione

    Ciao, utilizzo il seguente codice per inserire i bbcode in un textarea. Questo codice inserire, su qualsiasi browser il codice al cursore.

    Ora vorrei che il bbcode venga applicato al testo selezionato.

    Se seleziono un testo, è possibile avere in una variabile il testo selezionato?

  2. #2
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Risolto!

  3. #3
    :master:
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  4. #4
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    Scusatemi per il post, pensavo di non farcela ma leggendo un po di documentazioni ci sono riuscito...

  5. #5
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Posta qualcosa, magari serve a qualcun altro

  6. #6
    Utente di HTML.it L'avatar di PaoDJ
    Registrato dal
    Oct 2001
    Messaggi
    273
    codice:
    // BBCode JS
    // Copyright 2003-2005 PaoDJ
    function bb_code(what,campo){
      if(what=="bold"){
        if(!bbcode_sel("","",campo)){
         dat=prompt('Inserisci il testo in grassetto:',"");
         if((dat!=null)&&(dat!="")){ bbcode_ins(""+dat+"",campo); }
        }
      }
      if(what=="italic"){
        if(!bbcode_sel("","",campo)){
          dat=prompt('Inserisci il testo in corsivo:',"");
          if((dat!=null)&&(dat!="")){ bbcode_ins(""+dat+"",campo); }
        }
      }
      if(what=="testo_nero"){
        if(!bbcode_sel("[testo nero]","[/testo]",campo)){
          dat=prompt('Inserisci il testo in nero:',"");
          if((dat!=null)&&(dat!="")){ bbcode_ins("[testo nero]"+dat+"[/testo]",campo); }
        }
      }
      if(what=="testo_rosso"){
        if(!bbcode_sel("[testo rosso]","[/testo]",campo)){
          dat=prompt('Inserisci il testo in rosso:',"");
          if((dat!=null)&&(dat!="")){ bbcode_ins("[testo rosso]"+dat+"[/testo]",campo); }
        }
      }
      if(what=="testo_tipico"){
        if(!bbcode_sel("[testo tipico]","[/testo]",campo)){
          dat=prompt('Inserisci il testo:',"");
          if((dat!=null)&&(dat!="")){ bbcode_ins("[testo tipico]"+dat+"[/testo]",campo); }
        }
      }
      if(what=="img"){
        dat=prompt('Inserisci l\'url dell\'immagine:',"");
        if((dat!=null)&&(dat!="")){ bbcode_ins("[img src="+dat+"]",campo); }
      }
      if(what=="link"){
        dat=prompt('Inserisci l\'url del collegamento:',"http://");
        if((dat!=null)&&(dat!="http://")&&(dat!="")){
          dat2=prompt('Inserisci il testo del collegamento (Lasciare vuoto per visualizzare l\'URL):',"");
          if((dat!=null)&&(dat!="")){
            bbcode_ins("[a href="+dat+"]"+dat+"[/a]",campo);
          }else{
            bbcode_ins("[a href="+dat+"]"+dat2+"[/a]",campo);
          }
        }
      }
      if(what=="mail"){
        dat=prompt('Inserisci l\'indirizzo email:',"");
        if((dat!=null)&&(dat!="")){
          dat2=prompt('Inserisci il testo del collegamento (Lasciare vuoto per visualizzare l\'indirizzo email):',"");
          if((dat!=null)&&(dat!="")){
            bbcode_ins("[mail to="+dat+"]"+dat+"[/mail]",campo);
          }else{
            bbcode_ins("[mail to="+dat+"]"+dat2+"[/mail]",campo);
          }
        }
      }
    }
    
    
    function bbcode_sel(bbcode_before,bbcode_after,bbcode_field){
    
      bbcode_field=getobj(bbcode_field);
      
      if(document.selection){
        bbcode_field.focus();
        sel=document.selection.createRange();
        if(sel.text!=''){
          startPos=bbcode_field.value.indexOf(sel.text);
          endPos=bbcode_field.value.indexOf(sel.text)+sel.text.length;
          bbcode_field.value=bbcode_field.value.substring(0,startPos)+bbcode_before+bbcode_field.value.substring(startPos,endPos)+bbcode_after+bbcode_field.value.substring(endPos,bbcode_field.value.length);
          return true;
        }else{
          return false;
        }
      }else if(bbcode_field.selectionStart!=bbcode_field.selectionEnd){
        startPos=bbcode_field.selectionStart;
        endPos=bbcode_field.selectionEnd;
        bbcode_field.value=bbcode_field.value.substring(0,startPos)+bbcode_before+bbcode_field.value.substring(startPos,endPos)+bbcode_after+bbcode_field.value.substring(endPos,bbcode_field.value.length);
        
        return true;
      }else{
        return false;
      }
    }
    
    
    function bbcode_ins(bbcode_code,bbcode_field) {
      
      bbcode_field=getobj(bbcode_field);
      
      if(document.selection){
        bbcode_field.focus();
        sel=document.selection.createRange();
        sel.text=bbcode_code;
      }else if(bbcode_field.selectionStart||bbcode_field.selectionStart=='0'){
        startPos=bbcode_field.selectionStart;
        endPos=bbcode_field.selectionEnd;
        bbcode_field.value=bbcode_field.value.substring(0,startPos)+bbcode_code+bbcode_field.value.substring(endPos,bbcode_field.value.length);
      }else{
        bbcode_field.value+=bbcode_code;
      }
    }
    Questo non è il bbcode ufficiale, ho creato i tag per le mie necessità...
    Funziona sia su IE che su Firefox ed applica il bbcode al punto in cui si trova il cursore o al testo selezionato

    Si richiama così: bb_code('azione','IDtextarea')

    Occio: questo genio di forum interpreta il bbcode anche se si trova in un tag [code]. Per avere il codice completo e corretto, fate il quote del messagio e copiatelo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.