0

我正在向我们的一个页面添加一个 TinyMCE 编辑器。由于超出我的薪酬等级的原因,我们使用的是 TinyMCE 3.5.4.1。

一切都很顺利,除非我尝试连接 onFocus 事件处理程序。如果我不尝试使用处理程序,编辑器会显示并且工作正常,但是在我定义处理程序的页面上,TinyMCE 中对于我尝试过的浏览器类型(IE8、9、10 和 Chrome)存在大量异常)。

我一直在使用我在这里看到的其他帖子中的模板,但我没有看到提到所有这些 TinyMCE 异常。当然,试图展开缩小的脚本是一件很痛苦的事情。

我在这里找到的第一个示例在 TinyMCE 配置中有一个设置函数,如下所示:

 , setup: function (ed) {
      ed.onInit.add(function (ed, evt) {
      if (!myFocus) return; // global for the handler to use
         var dom = ed.dom;
         var doc = ed.getDoc();
         tinymce.dom.Event.add(doc, 'focus', myFocus);
      });
   }

定义 myFocus 时,TinyMCE 会抛出许多以 if (j.isIE){l.attachEvent(...)} 开头的异常,抱怨 l.attachEvent 不存在。然后它转向各种变量类型不匹配。

Chrome 开发人员工具在处理缩小代码时更加尴尬,所以我不确定它不喜欢什么。

我在这里找到的另一篇文章建议进行一些最小的浏览器检测,但这对 IE 和 Chrome 都没有帮助。

var doc = s.content_editable ? ed.getBody() : (tinymce.isGecko ? ed.getDoc() : ed.getWin())

另一篇文章提出了一种不同的方法,但我在两种浏览器中仍然遇到了所有相同的错误。

, setup: function (ed) {
     ed.onInit.add(function (ed, evt) {
     if (!myFocus) return;
     ed.onFocus.add(myFocus);
     });
}

我也试过(徒劳)

, setup: function (ed) {
      if (!myFocus) return;
      ed.onFocus.add(myFocus);
 }

TinyMCE 中的事件处理非常脆弱吗?跨浏览器没有得到很好的支持?我应该避开它并尝试使用 jQuery 或其他东西吗?

谢谢马克

4

1 回答 1

0

结果是一个飞行员错误错误被推迟到扩展调用创建编辑器。

于 2013-08-12T15:40:51.260 回答