我有一个使用 TinyMCE 的遗留内部系统,但它最近停止工作,我不知道为什么,所以我希望可能有一些用户可以提供帮助。
该系统是一个常见问题类型,在一个页面上有 4 个 tinymce 初始化文本区域,当提交时,更新数据库。
Chrome中的Bug如下:
Uncaught Error: INDEX_SIZE_ERR: DOM Exception 1
不可编辑插件的 editor_plugin.js 中的第 110 行
r = s.getRangeAt(0);
另一个错误是
Uncaught TypeError: Cannot read property 'nodeName' of null
它位于表插件的 editor_plugin.js 的第 1 行。链接:http ://www.tinymce.com/wiki.php/Plugin:table
奇怪的是,如果我点击页面上的第四个tinymce框,然后更新内容并提交,数据库更新得很好,所以非常非常奇怪。
我知道这没什么可继续的,但问题更多的是希望而不是期望。
不可编辑插件的 editor_plugin_src.js 的最后一次提交是
editor_plugin_src.js,v 1.1 2010/12/15 14:00:33 amcpeake
我尝试在 github 上查看此文件的提交,但看不到任何解决此错误的内容。
我也尝试下载最新版本的tinymce,但这完全破坏了系统。
这是代码的完整分支,其中不可编辑的插件从上面提到的行中获取错误:
_moveSelection : function(e, inst) {
var s, r, sc, ec, el, c = tinyMCE.getParam('noneditable_editable_class', 'mceNonEditable');
if (!inst)
return true;
// Always select whole element
if (tinyMCE.isGecko) {
s = inst.selection.getSel();
r = s.getRangeAt(0);
sc = tinyMCE.getParentNode(r.startContainer, function (n) {return tinyMCE.hasCSSClass(n, c);});
ec = tinyMCE.getParentNode(r.endContainer, function (n) {return tinyMCE.hasCSSClass(n, c);});
sc && r.setStartBefore(sc);
ec && r.setEndAfter(ec);
if (sc || ec) {
if (e.type == 'keypress' && e.keyCode == 39) {
el = sc || ec;
// Try!!
}
s.removeAllRanges();
s.addRange(r);
return tinyMCE.cancelEvent(e);
}
}
return true;
},