2010-10-21 12 views
11

Ho creato un pulsante personalizzato utilizzando questo codiceOttenere contenuto HTML selezionato nell'editor TinyMCE

setup : function(ed) { 
    ed.addButton('Tittle', { 
       title : 'Tittle', 
       image : './images/T.jpg', 
       onclick : function() { 
       ed.focus(); 
      var c = ed.selection.getNode().nodeName; 
     if(c!="TITTLE") 
     { 
      ed.selection.setContent('<tittle>' + ed.selection.getContent() + '</tittle>'); 

     } 
     else 
     { 

     } 
} 
     }); 

Quando un utente seleziona un testo e cliccare sul pulsante Nuovo, voglio aggiungere un tag <title> a inizio e fine se <tittle> tag non è their.If <tittle> tag è già la loro nel testo selezionato voglio rimuovere il tag

risposta

12

provare

selection.getContent({format : 'text'}); 

o

selection.getContent({format : 'html'}); 

http://www.tinymce.com/wiki.php/API3:method.tinymce.dom.Selection.getContent

EDIT: per ottenere ciò che si vuole si potrebbe fare:

if(c!="TITTLE") { 

    node = ed.selection.getNode(); 

    with(document.getElementById(iframe_id).contentWindow){ 
     var newElement = document.createElement("tittle"); 
     newElement.innerHTML = node.innerHTML; 
    } 

    node.parentNode.replaceChild(newElement, node); 

} 
else { 

    node = ed.selection.getNode(); 

    with(document.getElementById(iframe_id).contentWindow){ 
     var newElement = document.createTextNode(node.innerHTML); 
    } 

    node.parentNode.replaceChild(newElement, node); 
} 
+0

Grazie Thariama.But sta dando solo il testo se seleziono un testo con lo stesso tag, se seleziono un testo con 2 tag diversi darà l'HTML con il contenuto – Warrior

+1

hmm, ciò potrebbe essere dovuto al fatto che la selezione fa solo testo in e il primo caso, ma nel secondo ci sono tag in mezzo (all'interno della selezione). ti dà l'html completo (tag completi)? – Thariama

+0

ya sto ottenendo l'html completo con i tag – Warrior

3
var node = tinyMCE.activeEditor.selection.getContent(); 
tinyMCE.execCommand('mceReplaceContent', false, %your value, can use node%"); 
Problemi correlati