Meteor / CollectionFS在下载链接点击触发器时删除前端收集内容

时间:2015-06-29 07:57:06

标签: javascript meteor collectionfs

我正在使用Meteor和CollectionFS与S3同时使用不同的商店来提供来自同一集合的缩略图和全尺寸图像。我想在'dblclick'事件中下载全尺寸图像。

var src = fileRecord.url({
  store: 'images',
  download: true
});

var a = $('<a>');
a.attr('href', src); // canvas.toDataURL(viewerImageObject.original.type);
a.attr('download', fileName); // canvas.toDataURL(viewerImageObject.original.type);
a.appendTo(document.body);
a.trigger('click');

不幸的是,当该事件触发时,前端集合中的所有项目都将被删除 - 这是通过collection.find()返回的游标上的简单{{#each}}块帮助程序呈现的。这在后端并不是持久的,只是前端。

一周前我已经filed a CollectionFS ticket了,而且我一直想把它分开,但无济于事。我也意识到我可以使用FileSaver.js和Canvas,但是在移动设备和大型图像上会有很多前端,特别是在polyfilled浏览器上。

如何在下载图像时阻止删除集合中的项目?

1 个答案:

答案 0 :(得分:1)

解决方案:将 target =&#34; _blank&#34; 添加到您的锚标记中,这将使您的浏览器打开一个新的下载链接标签,一切都会没事的

<强> TLDR

虽然我能够做到这一点,但我不确定是什么问题。看起来铁路由器会将您当前的标签导航到您点击的下载链接(但地址栏上的网址保持不变,这让我感到疑惑),这样所有的收藏品都会消失,您的网站也会空白