2010-10-21 11 views
11

Stworzyłem przycisk niestandardowy przy użyciu tego koduPierwsze wybrane treści HTML w edytorze 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 
     { 

     } 
} 
     }); 

Gdy użytkownik zaznacz tekst i kliknij przycisk Nowy, chcę dodać <title> znacznik na początku i na zakończenie jeśli <tittle> tag nie jest their.If <tittle> znacznik jest już ich w wybranym tekście chcę usunąć tag

Odpowiedz

12

spróbować

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

lub

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

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

EDIT: Aby osiągnąć to, co chcesz, możesz zrobić:

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

Dzięki Thariama.But to daje tylko tekst, gdybym wybrać tekst z tym samym tagiem, jeśli wybiorę tekst z 2 różnymi tagami, otrzyma kod HTML z treścią – Warrior

+1

hmm, co może być spowodowane tym, że zaznaczenie powoduje tylko tekst w tekście e pierwszy przypadek, ale w drugim są znaczniki pomiędzy (wewnątrz selekcji). czy daje ci pełny html (pełne tagi)? – Thariama

+0

Otrzymujesz pełny html ze znacznikami – Warrior

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