Javascript 设置href后,如何在angularjs中模拟锚点击?
我正试图导出到一个excel文件,我已经让所有的东西都工作了,除了最简单的部分;设置文件的href后模拟锚定单击 我这样设置属性:Javascript 设置href后,如何在angularjs中模拟锚点击?,javascript,angularjs,click,Javascript,Angularjs,Click,我正试图导出到一个excel文件,我已经让所有的东西都工作了,除了最简单的部分;设置文件的href后模拟锚定单击 我这样设置属性: // This is inside a directive link function scope.exportXLS() { var html = 'A long piece of html string generated from data'; $('#export-xls-' + scope.graphId).attr('href', URL.c
// This is inside a directive link function
scope.exportXLS() {
var html = 'A long piece of html string generated from data';
$('#export-xls-' + scope.graphId).attr('href', URL.createObjectURL(new Blob([html])));
}
导致:
<li ng-click="exportXLS()">
<a id="export-xls-0" class="eo-xls" download="exported-graph.xls" type="text/csv" href="blob:http%3A//localhost%3A3000/20b7d696-b1c2-41b3-a570-f7389ff3d2fb">Export to XLS</a>
</li>
但是什么也没发生。。href正在设置中,但它没有下载文件,因为单击似乎不起作用。我知道click()
值得注意的是,我使用的是chrome,而不是firefox,我听说firefox在模拟点击方面存在更多问题
设置href
属性后,如何模拟单击?是否打算使用范围
而不是$scope
?那($timeout
)呢?如果人头攒动说的话没用,试试。trigger(“点击”);instead@TheHeadRushscope是您通常在link函数中命名的scope参数。这不是问题所在。超时怎么办?如果没有它,您会得到一个错误,说摘要周期已经在进行中。@RandoHinn触发器也不起作用。我知道有合法的理由在$scope
上使用scope
,这就是为什么我要求使用它。我询问了$timeout
,以验证它是否也在angular名称空间中使用——这在您最初的帖子中根本不清楚。
$timeout(function() {
$('#export-xls-' + scope.graphId).click(function(event) {
event.stopPropagation();
});
});