Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有下载属性的电子问题_Javascript_Html_Download_Electron - Fatal编程技术网

Javascript 具有下载属性的电子问题

Javascript 具有下载属性的电子问题,javascript,html,download,electron,Javascript,Html,Download,Electron,在我前面的问题之后 我有一个桌面应用程序使用Electron平台和Javascript,我正在使用以下方式将HTML5画布转换为JPEG: <a id="download" download="Path.jpg">Download JPG</a> 这刷新了我的整个应用程序。如何更改此行为,使页面在单击“下载”属性时不会刷新?我可以想到这两个片段,一个使用blob,另一个使用download元素。外部图书馆: 我刚才还发现了这个,电子特定的解决方案: 稍微编辑一下锚定标签

在我前面的问题之后

我有一个桌面应用程序使用Electron平台和Javascript,我正在使用以下方式将HTML5画布转换为JPEG:

<a id="download" download="Path.jpg">Download JPG</a>

这刷新了我的整个应用程序。如何更改此行为,使页面在单击“下载”属性时不会刷新?

我可以想到这两个片段,一个使用blob,另一个使用download元素。外部图书馆:

我刚才还发现了这个,电子特定的解决方案:

稍微编辑一下锚定标签

<a id="download" download="Path.jpg" target="_blank" onClick="download();">Download JPG</a>

这可能有帮助

这有用吗?在你的锚定标签中添加
target=“\u blank”
,以停止refreshHi@AshokVishwakarma,不幸的是,这对我不起作用。我仍然可以刷新整个应用程序。@Rrz0,我认为您的代码存在其他问题,可能是这些问题导致了刷新。因为你的方法应该和Chrome一样有效/Electron@TarunLalwani,但这是极不可能的。我(认为我)没有任何其他可能导致此刷新的原因。根据Kaido的说法,在我上一个问题的回答中,“问题在于Electron的下载属性实现”,但我对此不确定。谢谢你的完整答案。我也将尝试此实现。出于某种原因,我得到的
下载不是一个函数
,而显然我有一个名为
下载
。您的下载函数是全局函数吗?另一种方法是使用
document.getElementById('download')。addEventListener('click',download,false)添加相同的函数
和remove onClick属性。不幸的是,整个应用程序仍在刷新,上面的代码已经实现。我尝试了第二个代码段,后面是
document.getElementById…
,但实际上它没有刷新。按save时,应用程序不会刷新,但图像不会保存!对不起,你是说什么都没发生(什么都没发生)?或者文件的格式不正确?第一个呢?我现在要检查第二个代码段,它没有刷新应用程序,但是图像没有保存。完全没有保存,也不是简单的错误格式。
// this one use FileSaver.js library
canvas.toBlob(function(blob) {
    saveAs(blob, "pretty image.png");
});

// or this way using download element.
// here you can encode your image-data and then send it.
var download = document.getElementById('download');
download.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(imageData));
download.setAttribute('download', 'file.jpg');
<a id="download" download="Path.jpg" target="_blank" onClick="download();">Download JPG</a>
function download(event){
    event.currentTarget.href = canvas.toDataURL('image/jpeg');
}