Javascript 将图像从'dropbox'帐户拖放到html画布-'不在chrome中工作`
此代码用于从图像库中拖动图像并将其放置在画布中(使用fabric.js),还可以从另一个选项卡中打开的dropbox帐户中拖放图像。这在firefox中运行良好,我可以从我的drop box帐户中拖动图像并将其放入画布中。但不是镀铬的Javascript 将图像从'dropbox'帐户拖放到html画布-'不在chrome中工作`,javascript,drag-and-drop,dropbox,fabricjs,same-origin-policy,Javascript,Drag And Drop,Dropbox,Fabricjs,Same Origin Policy,此代码用于从图像库中拖动图像并将其放置在画布中(使用fabric.js),还可以从另一个选项卡中打开的dropbox帐户中拖放图像。这在firefox中运行良好,我可以从我的drop box帐户中拖动图像并将其放入画布中。但不是镀铬的e.dataTransfer.getData(“Text”)在chrome中给出一个空值。我认为这是同一原产地政策的问题,并尝试了很多方法来解决它。但是没有运气。请帮我找一份这方面的工作 function handleDrop(e) { e.s
e.dataTransfer.getData(“Text”)
在chrome中给出一个空值。我认为这是同一原产地政策的问题,并尝试了很多方法来解决它。但是没有运气。请帮我找一份这方面的工作
function handleDrop(e) {
e.stopPropagation();
e.preventDefault();
// handle local images
if(e.dataTransfer.files.length > 0){
var files = e.dataTransfer.files;
for (var i = 0, f; f = files[i]; i++) {
// Only process image files.
if (f.type.match('image.*')) {
// Read the File objects in this FileList.
var reader = new FileReader();
// listener for the onload event
reader.onload = function(evt) {
// create img element
var img = document.createElement('img');
img.src= evt.target.result;
// put image on canvas
var newImage = new fabric.Image(img, {
width: img.width,
height: img.height,
// Set the center of the new object based on the event coordinates relative to the canvas container.
left: e.layerX,
top: e.layerY
});
canvas.add(newImage);
};
// Read in the image file as a data URL.
reader.readAsDataURL(f);
}
}
}
// handle dropbox images
else{
var img = e.dataTransfer.getData("Text");
console.log(img);
var img = e.dataTransfer.getData("Text");
if (img.indexOf('jpg')>0 ||img.indexOf('png')>0){
var temp = '<img draggable="true" src="'+img+'" width="250" height="250"></img>';
$('#before').append(temp);
var i = document.querySelector('img[src="'+img+'"]');
console.log('i: ',i);
var nI = new fabric.Image(i,{
width: i.width,
height:i.height,
left:e.layerX,
top:e.layerY
});
canvas.add(nI);
}
}
return false;
}
函数handleDrop(e){
e、 停止传播();
e、 预防默认值();
//处理本地图像
如果(e.dataTransfer.files.length>0){
var files=e.dataTransfer.files;
for(var i=0,f;f=files[i];i++){
//仅处理图像文件。
if(f.type.match('image.*'){
//读取此文件列表中的文件对象。
var reader=new FileReader();
//onload事件的侦听器
reader.onload=函数(evt){
//创建img元素
var img=document.createElement('img');
img.src=evt.target.result;
//将图像放在画布上
var newImage=newfabric.Image(img{
宽度:img.width,
高度:img.height,
//根据相对于画布容器的事件坐标设置新对象的中心。
左:e.layerX,
顶部:e.layerY
});
canvas.add(newImage);
};
//作为数据URL读入图像文件。
reader.readAsDataURL(f);
}
}
}
//处理dropbox图像
否则{
var img=e.dataTransfer.getData(“文本”);
控制台日志(img);
var img=e.dataTransfer.getData(“文本”);
如果(img.indexOf('jpg')>0 | | img.indexOf('png')>0){
var temp=“”;
$('#before')。追加(临时);
var i=document.querySelector('img[src=“”+img+'”);
console.log('i:',i);
var nI=新织物。图像(i{
宽度:即宽度,
身高:i.身高,
左:e.layerX,
顶部:e.layerY
});
canvas.add(nI);
}
}
返回false;
}