0

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

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

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

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

服务器端方法和裁剪坐标按预期工作。虽然,上面的代码运行不正常。适用于火狐,但不适用于其他浏览器。

我想知道是否正确更新了 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;
                }
            }
        });
    }
}
4

1 回答 1

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);
于 2012-08-07T07:36:40.327 回答