我正在使用 Angular2,我有一种下载文件的方法...一切正常,但我使用的是 <a>
并使用 href='routetodownload'
下载文件我被要求在某些情况下禁用此链接,然后决定更改 <a>
通过<button>
(无论如何,该链接都可以作为按钮使用)并这样做,而不是使用 href
属性,我创建了一个函数。
HTML
<button (click)="download(url)">download</button>
typescript
download(url) {
window.location.href = url;
}
但这会导致 Firefox 上出现奇怪的行为,当我单击下载时,会出现保存对话框,但在其后面会刷新页面。使用时<a href='url'>
出现“另存为”对话框时页面不会刷新
这种情况仅在使用 Firefox 时发生...Edge 和 Chrome 在这两种情况下都工作正常。
我想知道为什么 window.location.href 会导致 Firefox 上的自动刷新。
如果有人对此有任何想法,请告诉我
更新
问题毕竟是 NG Live Development Server
(来自 angular-cli ng serve
命令)...我不知道为什么这种情况只发生在 Firefox 上。问题是,我的应用程序托管在 IIS 上,我在使用它的解决方案中没有刷新。
稍后我会与 Angular-cli 团队的人员核实此行为可能是什么...
谢谢大家。
问候
最佳答案
这只发生在本地 angular-cli 实时服务器上,因为默认情况下所有路由都会路由到/index.html,这是应用程序的根目录。 Angular 路由器找不到您的文件 URL,只会将您带到默认路由。
关于javascript - angular2 : why window. location.href 会导致 Firefox 上的页面刷新,但 href 不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41854630/