我正在向我们的一个页面添加一个 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 或其他东西吗?
谢谢马克