javascript - 如何将数据(以uri格式)从浏览器拖到其他应用程序

标签 javascript html google-chrome drag-and-drop electron

通过使用

dataTransfer.setData("DownloadURL", "application/octet-stream:fileName.bin:data:application/octet-stream;base64,eNcoDEdFiLEStuFf");

我们可以将文件(以 uri 格式编写)下载到桌面(或任何其他文件夹)。

但是如何使用uri格式拖入其他应用。 例如将uri格式的pdf内容从html页面拖到adobe reader,使其可以渲染内容。

data:application/pdf;base64,JVBERi0xLjUKJbXtrvsKMyAwIG9iago8PCAvTGVuZ3RoIDQgMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nGWSQW4DIQxF95zCJ6BgwDDH6BGqkZIsJou295cKxjaMqkSZ/wX+9vPk2wUYn58nfHwFeP46qj4eB9Tm09HgDZhVX4DoKUf1GD0FhFp9Koc5glO0A8m6IKJvIW4++pzNx8B5 RD6SmcwVp3gHSUvnefQta0zgq9IjSF0hkReUOSFbB6WtANEz+7Qj7EU6G+vmS2FNB1PG5EM6nNnMdaf6voTL9GwuEbK6+5JPBy9XEl8v/PuGWPjGtJdaQnkTctv8y8nCIvHjbSykS2j7XpfnpcuG5lhu7E4m7O+S9okv9TXJZBJo/v8kD5dnTRpgiKqv8T/paxwaAyTeKStd59DFV0K52f8FM1RDSF62NlDYXLlKfG78kKjp3Oqix7O/liKsqc9OtTMYUR/QiLo2oq7HdxlcRJhuRJh3Isx3Isx3IvEyskQpkXXR47gT9dZr6o2IGYwo50XUtRF1PQKKEsl1JtIGQqTdJaTdicQbkXh91BuRddHjshP1mdbUGxEzPNyn+wPIlfKYCmVuZHN0cmVhbQplbmRvYmoKNCAwIG9iagogICAzOTEKZW5kb2JqCjIgMCBvYmoKPDwKICAgL0V4dEdTdGF0ZSA8PAogICAgICAvYTAgPDwgL0NBIDEgL2NhIDEgPj4KICAgPj4KPj4KZW5kb2JqCjUgMCBvYmoKPDwgL1R5cGUgL1BhZ2UKICAgL1BhcmVudCAxIDAgUgogICAvTWVkaWFCb3ggWyAwIDAgODAgODAgXQogICAvQ29udGVudHMgMyAwIFIKICAgL0dyb3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9JIHRydWUKICAgICAgL0NTIC9EZXZpY2VSR0IKICAgPj4KICAgL1Jlc291cmNlcyAyIDAgUgo+PgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKICAgL0tpZHMgWyA1IDAgUiBdCiAgIC9Db3VudCAxCj4+CmVuZG9iago2IDAgb2JqCjw8IC9DcmVhdG9yIChjYWlybyAxLjE0LjEgKGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZykpCiAgIC9Qcm9kdWNlciAoY2Fpcm8gMS4xNC4xIChodHRwOi8vY2Fpcm9ncmFwaGljcy5vcmcpKQo+PgplbmRvYmoKNyAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZwogICAvUGFnZXMgMSAwIFIKPj4KZW5kb2JqCnhyZWYKMCA4CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDc4OSAwMDAwMCBuIAowMDAwMDAwNTA1IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDQ4MyAwMDAwMCBuIAowMDAwMDAwNTc3IDAwMDAwIG4gCjAwMDAwMDA4NTQgMDAwMDAgbiAKMDAwMDAwMDk4MSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDgKICAgL1Jvb3QgNyAwIFIKICAgL0luZm8gNiAwIFIKPj4Kc3RhcnR4cmVmCjEwMzMKJSVFT0YK

如果可以,如何实现?

dataTransfer.setData("application/pdf","content here ");

最佳答案

要实现这一目标:

您必须确保客户端有您要使用的应用程序。许多用户使用不同的应用程序打开 pdf 文件。

您要使用的应用程序必须将自身注册到操作系统以接收传入请求。 (例如,在 MacOS 上,App Store 应用程序会自行注册,您可以通过点击 html 链接打开应用程序页面)

如果Adobe Reader是你想使用的应用程序,你可以搜索它是否有这样的 future 。

如果你想对搜索机器人隐藏 pdf 文件,你可以在你的服务器临时文件夹中创建它们,并创建一个随机链接到它们。客户使用后,删除即可。

关于javascript - 如何将数据(以uri格式)从浏览器拖到其他应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498881/

相关文章:

java - "java.util.zip.DataFormatException: incorrect header check"在 JavaScript 中放气然后在 Java 中膨胀

html - CSS 全高 float 图例

php - 计算 MySQL 行数

android - 如何避免本地 Web 应用程序数据被删除?

javascript - 如何在 React CLI 中使用映射和过滤器列出另一个列表中的数据(评论列表和回复列表)

javascript - 在所有列上使用 JavaScript 过滤带有文本字段的表格

javascript - 使用 clickToggle 并在单击另一个元素时关闭元素

javascript - 我的谷歌地图路径符号不居中

google-chrome - 301重定向后如何防止chrome从磁盘缓存中加载index.html

css - -webkit-text-fill-color 不适用于 Chrome 69.0.3