【问题标题】:Drag 'n' Drop files to a Chrome Package App?将“和”拖放文件拖放到 Chrome 包应用程序?
【发布时间】:2013-03-06 05:08:05
【问题描述】:

有没有人成功地将文件从桌面拖放到应用程序?

我尝试将this drag 'n' drop example 放入索引文件,但我得到了这个错误:

Can't open same-window link to "file:///C:/Users....whatever"; try target="_blank".

请分享您的故事、您的尝试以及是否成功:)

【问题讨论】:

标签: google-chrome-extension google-chrome-app


【解决方案1】:

只听drop 是行不通的。您将不得不阻止 dragover 的默认功能。

document.body.addEventListener('dragover', function(e) {
  e.preventDefault();
}

document.body.addEventListener('drop', function(e) {
  alert('it works!')
}

【讨论】:

    【解决方案2】:

    一些可以帮助您的资源:

    我们一直致力于开发的新 Chrome 打包应用程序代码实验室涵盖 AngularJS 和纯 JavaScript 中的拖放功能。

    AngularJS 拖放:https://github.com/GoogleChrome/chrome-app-codelab/tree/master/lab5_data/angularjs/2_drop_files

    JavaScript 拖放:https://github.com/GoogleChrome/chrome-app-codelab/tree/master/lab5_data/javascript/2_drop_files

    在 developer.chrome.com/trunk/apps/app_codelab5_data.html#handle_drag_and_dropped_files_and_urls 上也有用于 AngularJS 拖放的早期版本文档

    不过,我们正在编写文档以涵盖这两个示例。

    【讨论】:

      【解决方案3】:

      我前段时间做过这个,效果很好。

      您遇到的问题是您正在创建一个文件 url,然后尝试导航到该 url。导航失败,而不是阅读。由于 CSP,它失败了,由于我们对允许的 CSP 设置了安全限制,您可能无法使用其他 CSP 覆盖它。

      但是,您应该能够只读取文件并使用内容。您需要更改该示例代码以使用 ReadAsText 或 ReadAsArrayBuffer 而不是 readAsDataURL。更多详情请关注here

      请告诉我们你的进展情况!

      【讨论】:

      • 我不久前也这样做了,它工作了,但从那时起,实现中的一些细节发生了变化,现在它不起作用了。当时没有很好的资源来记录如何做到这一点,我仍然找不到好的资源。
      猜你喜欢
      • 2022-09-24
      • 1970-01-01
      • 2012-07-31
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      相关资源
      最近更新 更多