TinyMCE和图像裁剪

时间:2012-08-06 16:10:24

标签: image-processing tinymce

我正在为TinyMCE编写一个插件来裁剪图像。此代码适用于Firefox,但似乎不适用于其他浏览器。

基本上,我正在使用JCrop获取图像和选定区域的坐标并将其传递给服务器端 执行裁剪并返回更新的宽度,高度和图像src的方法。

之后,取回结果。我按如下方式更新图像尺寸和src。

tinyMCE.activeEditor.selection.getNode().src  = croppedImageSource;
tinyMCE.activeEditor.selection.getNode().width =  croppedImageWidth;
tinyMCE.activeEditor.selection.getNode().height = croppedImageHeight;

服务器端方法和裁剪坐标正在按预期工作。虽然,上面的代码不能很好地工作。适用于Firefox,但不适用于其他浏览器。

我想知道是否正确更新了在TinyMCE中选择的图像?

这是我的完整javascript功能

function cropAndSave()
{
    var imgSrc = document.getElementById('jcrop_target').src;

    if(checkJcropCoords())
    {
        $.ajax({
            async: false,
            url: "/DocViewImageCrop.page",
            type: 'POST',
            data:
            {
                imgData:    imgSrc,
                cW:         $("#w").val(),
                cH:         $("#h").val(),
                cX:         $("#x").val(),
                cY:         $("#y").val()
            },
            dataType:  'json',
            complete: function(xmlRequestObject, successString)
            {
                var fileExists = xmlRequestObject.responseXML.getElementsByTagName("fileExists")[0].firstChild.nodeValue;

                if(fileExists == undefined || fileExists == "false")
                {
                    alert('Image not found on server. Try uploading the image, before attempting to resize');
                }
                else
                {
                    tinyMCE.activeEditor.selection.getNode().src =    xmlRequestObject.responseXML.getElementsByTagName("imgsrc")[0].firstChild.nodeValue;
                    tinyMCE.activeEditor.selection.getNode().width =  xmlRequestObject.responseXML.getElementsByTagName("width")[0].firstChild.nodeValue;
                    tinyMCE.activeEditor.selection.getNode().height = xmlRequestObject.responseXML.getElementsByTagName("height")[0].firstChild.nodeValue;
                }
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试

tinyMCE.activeEditor.selection.getNode().setAttribute('scr', croppedImageSource);
tinyMCE.activeEditor.selection.getNode().setAttribute('width',  croppedImageWidth);
tinyMCE.activeEditor.selection.getNode().setAttribute('height', croppedImageHeight);

或jQuery

var $node = $( tinyMCE.activeEditor.selection.getNode() );
$node.attr('scr', croppedImageSource);
$node.attr('width',  croppedImageWidth);
$node.attr('height', croppedImageHeight);