TinyMCE插件InsertContent擦除编辑器内容

时间:2011-05-30 15:19:27

标签: javascript plugins tinymce

如果我在点击我的自定义按钮之前没有点击编辑器,HTML内容会出现,但其他一切都会消失...事情是我正在开发这个插件供公众使用所以我不希望这样人们通过错误擦除它们的内容,有没有办法设置插入点?以下是插入内容代码的行:

ed.execCommand('mceInsertContent', false, 'HTML CONTENT');

我试图在mceInsertContent之前添加它,但没有成功:

tinyMCE.execInstanceCommand("mce_editor_0", "mceFocus");

这里有长代码:

(function() {
tinymce.create('tinymce.plugins.EmbedText', {
    init : function(ed, url) {
        ed.addButton('EmbedText', {
            title : 'Embed Text',
            image : url+'/../images/text.png',
            onclick : function() {
                var textprompt = prompt("Question", "Exemple");
                if (textprompt != null && textprompt != 'undefined')
                    tinyMCE.execInstanceCommand("mce_editor_0", "mceFocus"); //Tried this to set the focus to be shure to don't erase everything but still not working...
                    ed.execCommand('mceInsertContent', false, textprompt );
            }
        });
    },
    createControl : function(n, cm) {
        return null;
    },
    getInfo : function() {
        return {
            longname : "Embed Text",
            author : 'ME',
            authorurl : 'http://perdu.com/',
            infourl : 'http://perdu.com/',
            version : "1.0"
        };
    }
});
tinymce.PluginManager.add('EmbedText', tinymce.plugins.EmbedText);  })();

感谢那些正在帮助的人!

2 个答案:

答案 0 :(得分:0)

经过几次测试,FF,IE,Safari和Opera工作正常,唯一删除编辑器内容的浏览器是Chrome ...这是我使用的浏览器...这就是为什么我没有看到它的原因铬问题对不起!

答案 1 :(得分:0)

我发现tinyMCE失去焦点并将其丢弃在整个文档上,所以在mceContentInsert之前执行以下操作,如果发生这种情况,它应该解决问题:

var ed = tinyMCE.activeEditor, selectedNode = ed.selection.getNode();

if(ed.dom.doc === selectedNode) {
    ed.selection.setNode(ed.dom.doc.body);
}