我试图让用户可以将图标从网络浏览器拖动到桌面,并创建一个文本文件。我已经记下了内容部分,但我不知道如何设置文件名。我尝试过变异dataTransfer.files
但这是只读的。我不知道如何实现这一目标。
class CrashReport extends React.Component {
dragStart(event) {
const dat = {name: 'test!', crashDate: new Date()};
event.dataTransfer.name = 'tmp.txt'; // bad
event.dataTransfer.setData('text/plain', JSON.stringify(dat, null, 2));
console.log(event.dataTransfer);
}
render() {
return <div draggable onDragStart={this.dragStart.bind(this)}>
Drag This
</div>
}
}
http://embed.plnkr.co/ar3deFFvedcWhVfwt6c6/ http://embed.plnkr.co/ar3deFFvedcWhVfwt6c6/
According to this MDN page https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Recommended_Drag_Types#file (emphasis mine)
使用以下命令拖动本地文件application/x-moz-file
类型的数据值是nsIFile https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIFile目的。非特权网页无法检索或修改此类数据。
因此,如果您不编写浏览器扩展,则不能,并且会收到Security Error
.
当您将一些数据拖到桌面时会发生什么取决于您的操作系统(我的操作系统将其转换为某些.textClipping
文件格式)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)