如何模拟链接的下载属性
How to mock download attribute of a link?
我正在努力将应用程序从 Angular 1.2 更新到 Angular 1.4,并在课程中打破了一些业力测试。 大多数都是简单的修复,但是有一些我无法工作。 测试依赖于检查是否定义了下载属性来确定如何下载所需的文件。 在升级之前,测试可以只设置 elem.download。 升级后,我似乎无法设置下载。
以下是我为测试设置元素的方式:
var link = document.createElement('a');
link.download = undefined;
然后在代码本身中,这是一个非常简单的
if(link.download !== undefined) {
//do stuff (this test works)
} else {
//do other stuff (this test doesn't work)
}
当我尝试将link.download设置为未定义时,它仍然进入第一个分支。 如果我尝试只传递一个空对象,我会出错,因为各种属性都是未定义的,即使代码似乎没有查看这些属性。
我还尝试设置link.download = null
并将 if 语句更改为使用typeof
如何将下载属性设置为未定义?
这是一个带有该问题的简单 Plunker。
设置为
download
的值将转换为字符串值,因此您的undefined
将转换为 "undefined"
这就是为什么它始终通过!==
比较的原因。
编辑
通过您的评论,您想对download
进行功能检测。所以要这样做使用
`download` in createElement('a')
//or
HTMLAnchorElement.prototype.hasOwnProperty('download')
然后,如果您想强制进行不存在的测试,您可以从原型中删除download
delete HTMLAnchorElement.prototype.download;
相关文章:
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 将下载链接从web浏览器传递给第三方应用程序
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- 使用angular创建JSON下载链接
- 如何使链接/按钮可下载
- jquery对话框可见时自动下载链接问题
- aFrame.io创建超链接和下载链接
- 允许用户从链接下载文件,如果他们选中“;同意条款”;框或单选按钮
- 网页:通过下载远程FTP文件的链接列出这些文件
- 从h1标签获取链接并使图片可下载
- 下载最新版本的 GitHub 项目的链接
- 使用动态创建的链接在AngularJS中下载文件
- PhantomJS使用javascript链接下载
- 无法通过href超链接下载文件
- 使用Javascript从网页链接下载
- 我如何在FF和Chrome中使用链接下载属性
- iPhone(iOS)从网站上的链接下载MP4
- 点击背景图片,从链接下载图片,显示进程栏javascript
- 通过超链接下载< >在IE11中使用javascript