2011-04-30 282 views
8

我試圖捕捉一個tinyMce編輯器的模糊和焦點事件。Tinymce模糊/焦點事件

我找到了以下方法。

  ed.onInit.add(function(ed) { 
       tinyMCE.execCommand('mceRepaint'); 

       var dom = ed.dom; 
       var doc = ed.getDoc(); 

       if (o.onblurtopics) { 
        tinymce.dom.Event.add(doc, 'blur', function(e) { 
         alert("blur"); 
        }); 
       } 
       if (o.onfocustopics) { 
        tinymce.dom.Event.add(doc, 'focus', function(e) { 
         alert("focus"); 
        }); 
       } 

      }); 

這工作正常,但只在Firefox。當我在當前的Chromium或IE8中嘗試此操作時,它不起作用。

有沒有人有建議?

+0

請訪問此鏈接;我希望這會幫助你 http://stackoverflow.com/questions/5593019/tinymce-blur-event/12800840 – 2012-10-24 06:36:36

回答

1

你可以使用jQuery照顧模糊/焦點(jQuery然後將照顧瀏覽器相關的東西)。

更新:它的工作原理! 這裏是TinyMCE的小提琴:http://fiddle.tinymce.com/ageaab/1

這裏是代碼:

<script type="text/javascript"> 
tinymce.init({ 
    selector: "textarea", 
    plugins: [ 
     "advlist autolink lists link image charmap print preview anchor", 
     "searchreplace visualblocks code fullscreen", 
     "insertdatetime media table contextmenu paste" 
    ], 
    toolbar: "bold italic", 
    setup : function(ed) { 
     ed.on('init', function() 
     { 
      $(ed.getBody()).on('blur', function(e) { 
       console.log('blur'); 
      }); 
      $(ed.getBody()).on('focus', function(e) { 
       console.log('focus'); 
      }); 
     }); 
    } 

}); 
</script> 

<form method="post" action="dump.php"> 
    <textarea name="content"></textarea> 
</form> 
+7

我認爲正常的模糊/焦點功能不會與tinymce實例一起工作。 – Johannes 2011-05-03 06:24:46

+0

它的工作原理!我添加了工作代碼到我的答案 – Thariama 2014-05-14 08:54:01

10

使用

tinymce.dom.Event.add(s.content_editable ? ed.getBody() : (tinymce.isGecko ? ed.getDoc() : ed.getWin()), 'blur', function(e) { 
    alert('blur'); 
} 
+0

只是偉大的這是工作!給這個男人一個upvote! Ty很多 – 2012-03-20 14:22:20

+3

這是什麼?..?! – 2014-01-30 11:49:34

+0

Rahul同樣的問題:「應該是什麼」? – Tybs 2015-09-09 14:20:33

5

似乎過於複雜,對我來說,這應該工作:

 editor.onInit.add(function(editor) { 
      tinymce.dom.Event.add(editor.getBody(), "focus", function(e) { 
       parent.console.log('focus'); 
      }); 
     }); 

     editor.onInit.add(function(editor) { 
      tinymce.dom.Event.add(editor.getBody(), "blur", function(e) { 
       parent.console.log('blur'); 
      }); 
     }); 
+0

這裏有兩個問題。 A)editor.getBody()無處不在。 B)由於日誌落入tinyMCE iframe,console.log不起作用。它似乎不起作用。 – Parris 2013-09-26 21:20:17