将'和'拖放文件拖到Chrome套餐应用中?

时间:2013-03-17 22:34:12

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

有没有人成功实施过拖放文件从桌面到应用程序?

我试过把this drag 'n' drop example放到索引文件中,但我得到这个错误:

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

请分享您的故事,您尝试过的内容以及您是否已成功 :)

3 个答案:

答案 0 :(得分:2)

一些资源可以帮助您:

我们一直致力于开发的新Chrome Packaged Apps codelab涵盖了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

上,Chrome的AngularJS拖放也有早期版本的文档。

我们正在编写文档以涵盖两个样本。

答案 1 :(得分:1)

我前段时间做过这件事并且有效。

您遇到的问题是您正在创建文件网址,然后尝试导航到网址。导航失败,而不是读取。它由于CSP而失败,由于我们对允许的CSP的安全限制,您可能无法用不同的CSP覆盖它。

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

请告诉我们您的情况!

答案 2 :(得分:1)

只听drop无效。您必须阻止dragover的默认功能。

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

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