我正在为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;
}
}
});
}
}
答案 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);