验证文件是否已下载/正在下载或被Adblock阻止

时间:2018-06-12 00:36:23

标签: javascript adblock

我正在下载一个文件(用JavaScript),用库解密它,然后我创建了一个blob URL。这是由于用户点击链接的用户交互而发生的。所以我不想欺骗任何人。要在解密后下载文件,我使用以下代码:

var a = document.createElement('a');
a.href = 'blob:foo';
a.target = '_blank';
a.download = 'foo.jpg';
a.click();

然而,这并不总是成功。

什么时候总是成功?

  • 当用户使用广告拦截器时。

什么时候成功?

  • 如果用户使用阻止blob网址的广告拦截器(例如,通过EasyList的Adblock Plus),并且不支持 download 属性。

因此,如果下载不成功,我想向用户显示警告。有没有办法检测到它?

我目前的想法是:

  • 检测是否有广告拦截器
  • 检查是否支持下载属性(!window.externalHost&&' download' in createElement(' a'))
  • 通知用户潜在的问题

1 个答案:

答案 0 :(得分:-1)

广告拦截器不会阻止下载,除非请求的URL与用户选择的过滤器列表中的过滤器匹配。

我建议您做的是找到该过滤器并加以解决,或者与easylist社区进行交流,以免您的URL被阻止。

这是他们的论坛:https://forums.lanik.us/