0

我有一个使用 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;
},
4

0 回答 0