TinyMCE:插入的图像被“选中”,无法调整大小

时间:2012-03-12 13:00:29

标签: javascript image plugins resize tinymce

我有一段时间有一个奇怪的错误。我制作了一个插件,可以在TinyMCE中插入图像。它工作得很好,但是在我插入图像后的一段时间内,编辑器中的所有图像(包括插入的图像)都被“选中”(鼠标悬停时出现蓝色叠加),因此无法调整大小(调整大小句柄)不会出现。

这样做的另一个影响是,在缩略图上方显示右键单击实际尺寸的图像(我正在使用缩略图 - >调整的img标签的宽度和高度)。当我再次右击它时,它消失了。

但是,如果我保存内容,关闭编辑器,打开一个新内容,然后加载保存的内容,它就会正常运行。

我不知道该怎么做,因为我没有在CSS或Javascript中看到原因,也没有找到相关信息。任何帮助将不胜感激。

这是我用来插入图片的代码:

function openImagePlugin() {
    storeBookmark();
    //open popup...
}

function insertImageInEditor(image) {
    var html = '<img onclick="alert(1)" src="' + image.src + '" style="width:' + image.width + 'px;height:' + image.height + 'px;"/>';
    restoreBookmark();
    tinyMCE.execInstanceCommand("editor", "mceInsertContent", false, html);
}

var editorBookmark = false;

function storeBookmark() {
    var ed = tinyMCE.get("editor");
    try {
        if (ed.selection !== undefined) {
            editorBookmark = ed.selection.getBookmark();

        }
    } catch (e) {
    }
}

function restoreBookmark() {
    var ed = tinyMCE.get("editor");
    try {
        if (ed.selection !== undefined) {
            ed.selection.moveToBookmark(editorBookmark);
        } 
    } catch (e) {
    }
}

书签内容是因为带有图像上传器的弹出窗口从编辑器中获取焦点,如果没有它,则会在编辑器的开头插入图像。

1 个答案:

答案 0 :(得分:1)

这解决了它:

tinyMCE.get("editor").selection.getSel().removeAllRanges();
插入图像后立即

。这是一个黑客,因为正确的解决方案是阻止选择出现。