我正在使用socket.io开发一个项目。我想给用户一些下载文件的链接
<a href="<path>" >Link Name</a>
当我点击链接下载文件时,我的套接字会断开连接。
当我使用这个
时<a href="<path>" target="_blank">Link Name</a>
它工作正常。出现这种情况的原因是什么?
答案 0 :(得分:1)
当您在同一窗口中关注链接时,当前页面的环境将完全被拆除,包括运行代码(和socket.io的代码)的整个JavaScript环境。这就是为什么当您在当前窗口中单击指向新页面的链接时这样做,而不是在您打开新窗口时target="_blank"
)。
您需要查看各种单页面应用程序技术,这些技术主要涉及使用ajax将内容交换到当前页面(并更新哈希以使URL不同),而无需在窗口中加载全新的页面
答案 1 :(得分:1)
您可以尝试将下载定位到隐藏的iframe
。这会阻止页面重新加载:
<iframe id="downloadIframe" name="downloadIframe" style="display:none;"></iframe>
<a href="<path>" target="downloadIframe">Link Name</a>
我们为id
指定了name
和iframe
,以了解跨浏览器的行为。