HTML 拖放 - 如何设置*传出*拖放(到桌面)的文件名

2024-03-01

我试图让用户可以将图标从网络浏览器拖动到桌面,并创建一个文本文件。我已经记下了内容部分,但我不知道如何设置文件名。我尝试过变异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(使用前将#替换为@)

HTML 拖放 - 如何设置*传出*拖放(到桌面)的文件名 的相关文章

随机推荐