5

TinyMCEでjQueryを使用しています。TinyMCEエディターにフォーカスがあるときに境界線の色を変更してから、ぼかしを入れて元に戻そうとしています。

ui.cssで、これらを追加/変更しました。

.defaultSkin table.mceLayout {border:0; border-left:1px solid #93a6e1; border-right:1px solid #93a6e1;}
.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #93a6e1;}
.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #93a6e1;}

私はinitスクリプトのためにこれに到達することができました:

$().ready(function() {

    function tinymce_focus(){
        $('.defaultSkin table.mceLayout').css({'border-color' : '#6478D7'});
        $('.defaultSkin table.mceLayout tr.mceFirst td').css({'border-top-color' : '#6478D7'});
        $('.defaultSkin table.mceLayout tr.mceLast td').css({'border-bottom-color' : '#6478D7'});
    }

    function tinymce_blur(){
        $('.defaultSkin table.mceLayout').css({'border-color' : '#93a6e1'});
        $('.defaultSkin table.mceLayout tr.mceFirst td').css({'border-top-color' : '#93a6e1'});
        $('.defaultSkin table.mceLayout tr.mceLast td').css({'border-bottom-color' : '#93a6e1'});
    }

    $('textarea.tinymce').tinymce({
        script_url : 'JS/tinymce/tiny_mce.js',
        theme : "advanced",
        mode : "exact",
          theme : "advanced",
          invalid_elements : "b,i,iframe,font,input,textarea,select,button,form,fieldset,legend,script,noscript,object,embed,table,img,a,h1,h2,h3,h4,h5,h6",

          //theme options 
          theme_advanced_buttons1 : "cut,copy,paste,pastetext,pasteword,selectall,|,undo,redo,|,cleanup,removeformat,|", 
          theme_advanced_buttons2 : "bold,italic,underline,|,bullist,numlist,|,forecolor,backcolor,|", 
          theme_advanced_buttons3 : "", 
          theme_advanced_buttons4 : "", 
          theme_advanced_toolbar_location : "top", 
          theme_advanced_toolbar_align : "left", 
          theme_advanced_statusbar_location : "none", 
          theme_advanced_resizing : false,

          //plugins
          plugins : "inlinepopups,paste",
          dialog_type : "modal",
        paste_auto_cleanup_on_paste : true,


        setup : function(ed) {
              ed.onClick.add(function(ed, evt) {
                  tinymce_focus(); 
              });

           }



    });    


});

...しかし、これ(クリック、変更、境界線の色)は、私がうまく機能することができた唯一のものです。他のすべての試みは、TinyMCEのロードを妨げるか、単に何もしませんでした。TinyMCE wikiページとそのフォーラムを閲覧しましたが、散らばっている小さな情報の塊から全体像をまとめることができませんでした。

これを行う方法は実際にありますか?私が見落としているのは単純なことですか、それとも実際に実装するのは本当に複雑なことですか?

4

5 に答える 5

4

ed.getDoc() で addEventListener() 関数を使用することはヒットまたはミスであり、AddEvent() 関数は ed でまったく機能しなかったため、この問題を再検討し、より多くのブラウザーをサポートする jQuery ソリューションになりました。 .getDoc() (「関数はオブジェクトでサポートされていません」エラー)。

以下は、IE8、Safari 5.1.7、Chrome 19、firefox 3.6 & 12 で動作することが確認されています。Opera 11.64 では動作しないようです。

setup: function(ed){
            ed.onInit.add(function(ed){
                $(ed.getDoc()).contents().find('body').focus(function(){tinymce_focus();});
                $(ed.getDoc()).contents().find('body').blur(function(){tinymce_blur();});                   
            });
        }
于 2012-05-27T04:35:18.560 に答える
1
setup:function(ed){
  ed.onClick.add(function(ed){
    tinymce_blur();
  });

  ed.onInit.add(function(ed){    
    ed.getDoc().addEventListener("blur", function(){
      tinymce_blur();
    }, false);
  });
}

フォーカスには、TinyMCE のイベント「onClick」を使用できます。ぼかしについては、レスポンスのプレビューは問題ありません。

于 2011-11-14T15:56:09.177 に答える
1

独自のプラグインのいずれかで次のようなことができます

ed.onInit.add(function(ed){    
    ed.getDoc().addEventListener("click", function(){
         tinymce_focus();
       }
    );

    ed.getDoc().addEventListener("blur", function(){
      tinymce_blur();
    }, false);
});
于 2010-12-17T08:41:54.587 に答える
1

しばらく前にこれに応答したと思っていましたが、そうではなかったようです。私はtinymce設定でこれで終わった:

setup: function(ed){
            ed.onInit.add(function(ed){

                //check for addEventListener -- primarily supported by firefox only
                var edDoc = ed.getDoc();
                if ("addEventListener" in edDoc){
                    edDoc.addEventListener("focus", function(){
                        tinymce_focus();
                    }, false);

                    edDoc.addEventListener("blur", function(){
                        tinymce_blur();
                    }, false);
                }

            });
        }
于 2011-10-11T23:49:06.640 に答える
1
.tox:not([dir=rtl]) {
    border-color: #a4286a;
}
于 2020-06-17T14:18:22.747 に答える