将下载文件从浏览器应用程序拖放到Windows应用程序(例如Outlook,打印机队列)中

我正在尝试下载文件,同时将其从浏览器拖到Windows应用程序中,例如在Outlook,打印机队列等中。文件正按预期方式放置到桌面或任何其他文件浏览器位置,但是当我尝试将其放置在Windows应用程序(打印机队列),其无法正常工作。 我使用过dragstart事件和jQuery ajax同步调用。任何帮助或指针,将不胜感激。唯一将使用的浏览器是Chrome。

在这篇文章的底部,您可以看到我正在尝试实现的目标: https://www.html5rocks.com/en/tutorials/casestudies/box_dnd_download/

下面是代码段:

HTML:

<a id="{{docs[0].documentID}}" draggable="true" ondragstart="angular.element(this).scope().dragOut(this.id,event)">{{docs[0].fileName}}</a>

JS:

$scope.dragOut = function(documentId,ev) {

    $.ajax({
        async: false,complete: function(response) {
            var b64Data = response.responseJSON.getDocumentResponse.content;
            var fileName = response.responseJSON.getDocumentResponse.fileName;
            var contentType = response.responseJSON.getDocumentresponse.contenttype;



            ev.dataTransfer.setData("DownloadURL",contentType+":"+fileName+":"+"data:"+contentType+";base64,"+b64Data);
            //ev.dataTransfer.setData("DownloadURL","text/plain:hello.txt:data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D");                        
        },error: function(xhr) {
            if (xhr.status == 404) {
                xhr.abort();
            }
        },type: 'GET',url: 'some url',data: '',headers: {
            withCredentials: true,'accept': 'application/json','Content-Type': 'application/json',}
    });
};

例如,当我尝试将其放入打印机队列时,我得到了加号,但释放后什么也没发生。因此,已经拖到桌面上了,我想要做的是直接拖到Windows应用程序上。

参考:https://www.thecssninja.com/javascript/gmail-dragout

collinmao 回答:将下载文件从浏览器应用程序拖放到Windows应用程序(例如Outlook,打印机队列)中

您将在此处获得一些受严格控制的OS功能(由OS来处理删除操作,而不是浏览器)。但是,由于Google进行了一些有趣的编码(为gmail功能编写),并且一些其他开发人员进行了侦查,因此此页面可能会为您提供所需的帮助:https://www.thecssninja.com/javascript/gmail-dragout

我确实看到了一些讨论,提到它除了可以拖到桌面之外还可以与其他应用程序一起使用。但是我还没有尝试过...

本文链接:https://www.f2er.com/3056369.html

大家都在问