2011-12-08 15 views
3

私はカスタムの「引用」ボタンを追加しました。tinymceカスタムボタン置換コンテンツ

ed.addButton('blockquote', { 
    title : 'blockquote', 
    cmd : 'mceblockquote', 
    image : url + '/img/blockquote.gif', 
    onclick : function() { 
     var blockquoteActive = tinyMCE.activeEditor.controlManager.get('blockquote').isActive(); 
     if (blockquoteActive) { 
      //replace <blockquote> tags ?! 
      //set Button inactive  
     } 
     else { 
      ed.selection.setContent('<blockquote>' + ed.selection.getContent() + '</blockquote><br />'); 
     } 
     } 

}); 

ed.onNodeChange.add(function(ed, cm, n) { 
    cm.setActive('blockquote', n.nodeName == 'IMG'); 
}) 

ボタンをクリックすると、すべて正常に動作します。選択は引用されます。もう一度ボタンをklickingとき、私はBLOCKQUOTEタグを交換するにはどうすればよい

  • ボタンを非アクティブにするにはどうすればよいですか?

よろしく、 saromba

答えて

1

はこれを試してみてください。少し修正するかもしれません。

ed.addButton('blockquote', { 
    title : 'blockquote', 
    cmd : 'mceblockquote', 
    image : url + '/img/blockquote.gif', 
    onclick : function() { 
     var blockquoteActive = tinyMCE.activeEditor.controlManager.get('blockquote').isActive(); 
     if (blockquoteActive) { 
      //replace <blockquote> tags ?! 

      content = ed.selection.getContent(); 
      content.replace(/<\/?blockquote>/ig,''); 
      ed.selection.setContent(content); 

      //set Button inactive 

      // works only if blockquote is registered at the controlManager 
      ed.controlManager.setActive('blockquote', false); 

     } 
     else { 
      ed.selection.setContent('<blockquote>' + ed.selection.getContent() + '</blockquote><br />'); 
     } 
    } 

}); 
+0

こんにちはに削除されます、私は明日それを試して、あなたにfeedback.thxを与えるでしょう – saromba

2

それは私がいくつかの変更(たぶん/おそらく改善を)作ったおかげで... を働きました。

何も選択されていない場合は、テキストが既に引用された場合、ユーザーがダブルクリックでテキストをマークすると、何もしない

、BLOCKQUOTE要素は今

onclick : function() { 
       var blockquoteActive = tinyMCE.activeEditor.controlManager.get('blockquote').isActive(); 
       var selection = ed.selection.getContent(); 
       if (blockquoteActive) { 

        if (selection) { 
         var parElem = ed.dom.getParent(ed.selection.getNode(), 'blockquote'); 
         var inner = parElem.innerHTML; 
         ed.dom.remove(parElem); 
         ed.selection.setContent(inner); 
        } 
        else return 

       } 
       else { 
        if (selection) { 
         ed.selection.setContent('<blockquote>' + ed.selection.getContent() + '</blockquote><br />'); 
        } 
       } 
      } 
関連する問題