使用document.createElement('a')创建一个变量,并在其上应用click,而不将其
Create a variable using document.createElement('a') and apply click on it without appending it to DOM
我正在使用jQuery/Javascript创建一个锚元素。我正在使用这个方法:
var a = document.createElement('a');
a.href = '/files/target.pdf';
a.download = true;
但是我怎么能执行一个点击事件上它而不追加/前置到DOM?我的意图很简单。我想让用户下载文件,而不是在浏览器中打开它,这就是为什么我想避免window.location = '/files/target.pdf';
函数。
请帮帮我。
谢谢。
你可以像这样触发"click":
var anchor = document.createElement('a');
anchor.href = 'http://gutfullofbeer.net/mozilla.pdf';
anchor.download = true;
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
anchor.dispatchEvent(evt);
但是,当我在Firefox中这样做时,我得到一个PDF文件,该文件显示在Firefox内置的PDF查看器中。(Chrome似乎做"正确"的事情,这是显示一个"保存…"对话框)
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 跟踪在页面加载时应用内联样式的JavaScript
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 如果文本字段为空,则使用JavaScript应用CSS样式
- MeteorJS-click.increment函数不起作用(您的第一个Meteor应用程序)
- 应用某些css样式后,fileupload-click事件未正确触发(在IE8上)
- 应用ng-pressstart和ng-pressend指令后,Angularjs ng-click不起作用
- 在javascript中通过D-click传递参数给应用程序
- 对每个HTML元素自动应用click事件
- 如何将jquery的Click事件应用于动态列表元素
- 如何使用javascript将click()应用于标签
- 我可以在body元素上应用click事件吗?
- Angular:是一个可抓取的应用,没有href,只有ng-click函数
- 使用document.createElement('a')创建一个变量,并在其上应用click,而不将其
- 对applybindings之后创建的元素应用click绑定
- .click()仅在iPad中工作,在backbone.js应用程序中
- Ionic ng-class函数触发所有ng-click在应用程序中如何解决这个问题