2013-09-28 5 views
2

tinymce 3.5.6을 사용하고 있고 단추를 추가하고 굵게 또는 밑줄 단추처럼 작동하지만 선택한 텍스트에 텍스트 그림자를 추가합니다. 모든tinymce에 텍스트 - 그림자 단추를 추가하는 방법

우선 나는 선

theme_advanced_buttons1 

에 "textshadow"를 추가하고 모든 라인에 추가 :이 작품이지만, 굵게 같은 기능 또는 버튼을 밑줄하지

'formats' : { 
    'textshadow' : { 
     'inline' : 'span', 
     'styles' : { 
      'text-shadow' : '0px 1px 5px rgba(0,0,0,0.4)' 
     } 
    } 
}, 

'setup' : function (ed) { 
    ed.addButton('textshadow', { 
     'title' : 'Text shadow', 
     'image' : 'js/tiny_mce/themes/advanced/img/textshadow.png', 
     'onclick' : function() { 
      ed.formatter.apply('textshadow'); 
      return false; 
     } 
    }); 
}, 

합니다. 텍스트를 선택하고 텍스트 그림자 버튼을 클릭하면 선택한 텍스트에 그림자가 추가되지만 두 번째 클릭시 그림자가 제거되지는 않습니다. 또한 텍스트 그림자로 텍스트를 선택한 경우 텍스트 섀도우 버튼을 선택하지 않습니다.

세금 그림자 단추를 굵게 또는 밑줄 단추처럼 정확하게 작동 시키려면 어떻게해야합니까?

데모 : http://jsfiddle.net/8wGYC/1/

EDIT (첫 번째 버튼은 플래시 아이콘과 텍스트 그림자) : 다른 그림자 3 옵션을 추가 드롭 다운 메뉴를 만들기 위해 다른 솔루션. 하지만 Format 드롭 다운 메뉴와 마찬가지로 작동하도록하고 싶습니다. (하나를 선택하면 두 번째 클릭으로 그림자가 취소됩니다.) Styles 또는 Format 드롭 다운 메뉴에서 일부만 나타나기를 원하지 않습니다. 별도의 드롭 다운 메뉴에 있어야합니다. 이 작업을 수행하는 방법을 모릅니다 ... 어떤 아이디어입니까?

주셔서 감사합니다 JSfiddle

답변

0

덕분에 나는 당신의 문제에 대한 주위에 방법을 찾을 수 있었다. 나는 그것이 맞다 그러나 그것은 아주 좋은 작동하는지 모르겠어요 ... :) 여기

내가 밖에서라는 변수를 정의

var toggle=0; 
tinyMCE.init({ 
     // General options 
     mode : "textareas", 
     theme : "advanced", 
     plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", 

     // Theme options 
     theme_advanced_buttons1 : "textshadow, save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect", 
     theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor", 
     theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen", 
     theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage", 
     theme_advanced_toolbar_location : "top", 
     theme_advanced_toolbar_align : "left", 
     theme_advanced_statusbar_location : "bottom", 
     theme_advanced_resizing : true, 

     // Skin options 
     skin : "o2k7", 
     skin_variant : "silver", 

     // Example content CSS (should be your site CSS) 
     content_css : "css/example.css", 

     // Drop lists for link/image/media/template dialogs 
     template_external_list_url : "js/template_list.js", 
     external_link_list_url : "js/link_list.js", 
     external_image_list_url : "js/image_list.js", 
     media_external_list_url : "js/media_list.js", 

     // Replace values for the template plugin 
     template_replace_values : { 
       username : "Some User", 
       staffid : "991234" 
     }, 
     'formats' : { 
      'textshadow' : { 
       'inline' : 'span', 
       'styles' : { 
        'text-shadow' : '0px 1px 5px rgba(0,0,0,0.4)' 
       } 
      }, 
      'noshadow' : { 
       'inline' : 'span', 
       'styles' : { 
        'text-shadow' : '0px 0px 0px rgba(0,0,0,0)' 
       } 
      } 
     }, 

     'setup' : function (ed) { 
      ed.addButton('textshadow', { 
       'title' : 'Text shadow', 
       'image' : 'http://www.tinymce.com/js/tinymce_3_x/jscripts/tiny_mce/themes/advanced/img/flash.gif', 
       'onclick' : function() { 
        if(!toggle){ 
        ed.formatter.apply('textshadow'); 
         toggle=!0; 
        } 
        else{ 
         ed.formatter.apply('noshadow'); 
         toggle=0; 
        } 
        return false; 
       } 
      }); 
     }, 
}); 

내 편집과 작은 MCE 코드 toggle. 토글 값에 따라 설정 한 noshadow이라는 추가 형식이 있습니다.

link에 지정된 형식을 삭제하려고 시도했지만 나에게 적합하지 않았습니다. 하지만 난 그것을 만들었 어 :)

+0

이것은 당신이 한 일의 예입니다 ... http://jsfiddle.net/8wGYC/10/ 텍스트를 표시하고 그것을 텍스트 그림자를 사용하고 텍스트 그림자로 작업하기 위해 다른 텍스트를 표시하고 싶다면 ("토글"플래그는 어쨌든 켜져 있기 때문에) – Nir

+0

예 .. 그런 경우 .. 한 번 두 번 클릭해야합니다. . 좋은 해결책이 아닙니다. 그냥 피들과 연주 : P – DarkHorse

+0

@Nir tinyMCE는 많이 알지 못합니다.하지만 선택 이벤트를 알아낼 수 있고 어떤 인라인 스팬이 적용되었는지 확인하면 토글은 비도시 적용을 위해 제거 될 수 있습니다 .. – DarkHorse

관련 문제