javascript - TinyMCE:j 未定义

标签 javascript tinymce

这段代码有什么问题?插入图像后我收到“J 未定义消息”。我认为这发生在我试图关闭自己的时候。

var ImageDialog = 
{
    init : function()
    {
        var f = document.forms[0], ed = tinyMCEPopup.editor;
        e = ed.selection.getNode();
        if (e.nodeName == 'IMG')
        {
            f.src.value = ed.dom.getAttrib(e, 'src');
        }
    },

    update : function()
    {
        var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;

        tinyMCEPopup.restoreSelection();

        if (f.src.value === '')
        {
            if (ed.selection.getNode().nodeName == 'IMG')
            {
                ed.dom.remove(ed.selection.getNode());
                ed.execCommand('mceRepaint');
            }

            tinyMCEPopup.close();
            return;
        }

        tinymce.extend(args,
        {
            src : f.src.value
        });

        el = ed.selection.getNode();

        if (el && el.nodeName == 'IMG')
        {
            ed.dom.setAttribs(el, args);
            tinyMCEPopup.editor.execCommand('mceRepaint');
            tinyMCEPopup.editor.focus();
        }
        else
        {
            ed.execCommand('mceInsertContent', false, '<img src="'+args['src']+'" id="_mce_temp_rob" alt="" />', {skip_undo : 1});
            ed.undoManager.add();
            ed.focus();
            ed.selection.select(ed.dom.select('#_mce_temp_rob')[0]);
            ed.selection.collapse(0);
            ed.dom.setAttrib('_mce_temp_rob', 'id', '');
            tinyMCEPopup.storeSelection();
        }

        tinyMCEPopup.close();
    },

    getImageData : function()
    {
        var f = document.forms[0];
        this.preloadImg = new Image();
        this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);
    }
};

tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);

最佳答案

这是一个tinymce错误。在内部,tinymce 代码使用 <span id="mce_marker"></span>粘贴时记住插入符号的位置。当验证生成的片段时,粘贴后,跨度被视为无效并被删除,从而通过删除标记来破坏代码。 此问题将在下一个官方 tinymce 小版本中修复。对于此类问题有一些解决方法。一是添加添加idmce-data-type属性为spans as valid elements (init setting) 。示例:

// The valid_elements option defines which elements will remain in the edited text when the editor saves.
    valid_elements: "@[id|class|title|style]," +
    "a[name|href|target|title]," +
    "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i,-u" +
    "-span[data-mce-type]",

关于javascript - TinyMCE:j 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688527/

相关文章:

javascript - html 破坏了 $.parse.JSON

用于复选框检查的 Java 字符串到 JavaScript 字符串数组

javascript - 对整个文档进行所见即所得的 HTML 编辑?

javascript - TinyMCE - 未捕获的异常 : module [5] returned undefined when using local javascript file

javascript - 如何从外部访问内部嵌套函数?

javascript - TinyMCE 在编辑器中添加可点击的按钮/div

javascript - 在 TINYMCE 中允许除脚本之外的所有 html 标签

带有自定义 Google map 标记/放置动画的 Javascript

javascript - 更新谷歌地图标记而不重建 map

javascript - AngularJS - 在 ng-repeat 中过滤未定义的属性?