Chrome中的数据传输
Datatransfer in Chrome
我正在实现从缩略图拖动图像,并将其放入画布中绘制。
我在事件ondragstart
期间使用了datatransfer.setdata()
,在事件ondrop
上使用了datatransfer.getdata()
。它在Firefox中运行良好,但在Chrome中不起作用。我知道在Chrome中不支持数据传输。所以,什么是一个好的解决方案,也应该是跨浏览器兼容!
function dragIt(event) {
event.dataTransfer.setData("URL", event.target.id)
};
function dropIt(event) {
var theData = new Image();
theData = event.dataTransfer.getData("URL");
dt = document.getElementById(theData);
event.preventDefault();
var ctx = this.getContext('2d');
ctx.clearRect(0,0,this.width,this.height);
ctx.drawImage(dt, 0, 0);
};
var out = document.getElementById('out');
var Can1 = document.createElement("canvas");
Can1.height="100";
Can1.width="100";
Can1.style.cssText = 'position:relative; top:5px;left:500px;border:2px solid black;'
Can1.ondragover = function(event) {
event.preventDefault();
};
Can1.ondrop = dropIt;
out.appendChild(Can1);
我知道谚语中的马可能已经抓住了这个问题,但我刚刚在Chrome的getData/setData中注意到了这个问题。对我来说,如果您使用"text"或"text/plain"作为数据的格式,并且event.dataTransfer.getData(format)
返回undefined
,那么它只适用于。
在Chrome的开发工具中,您可以检查event.dataTransfer.types
属性,以查看getData/setData函数的"format"参数接受哪些值。
因此,将"URL"更改为"文本"可能会解决这种情况下的问题。不幸的是,到目前为止,我还没有找到任何关于Chrome为什么选择只实现这些格式的信息。
相关文章:
- 使用JavaScript在网页之间进行数据传输
- 使用javascript asp.net将listbox数据传输到另一个listbox
- 通过 ajax 将数据传输到 php
- dataTransfer.set拖放的数据在chrome中不起作用
- angularjs模态将数据传输到外部控制器的正确方法
- AJAX和PHP数据传输不起作用
- 使用 ajax 将 JavaScript 数据传输到 PHP
- Chrome中的数据传输
- KendoUI数据源赢得't将数据传输到ListView
- 保存每个POST数据的Chrome扩展
- 使用锚标记进行数据传输
- 从JavaScript应用程序到Rails服务器的数据传输
- 如何使用 meteor.js 在浏览器中监控数据传输
- 跳转到另一个页面并同时将数据传输到该页面
- Ajax 数据传输器
- 如何将数据从 chrome 扩展程序传递到它使用 window.open 打开的网页
- 将 Excel 数据传输到网页上的文本字段和按钮中
- 为什么我的 event.target 数据在 chrome 中不起作用
- 如何在 HTML5 放置事件的特定位置附加数据传输内容
- window.name 作为数据传输:一种有效的方法