如何实现点击<a> tag leads to http request and do not jump to the new page?</a>

时间:2015-02-22 03:37:28

标签: javascript html

我想制作一个下载链接。

这是我的HTML:

<a href="javascript:void(0)"><img src="../images/icons/word.png" alt="Word"></a>
<a href="javascript:void(0)"><img src="../images/icons/excel.png" alt="Excel"></a>
<a href="/download/test.ppt"><img src="../images/icons/ppt.png" alt="PPT"></a>
<a href="/download/test.pdf"><img src="../images/icons/pdf.png" alt="PDF"></a>

当我点击<a>标记时,我想执行一个http请求,而<a>标记确实会这样做。但它也跳到了新的页面。我不希望这种情况发生。

我搜索并找到了一些解决方案,例如设置<a>代码的href="#something",或使用ajax。但是,这些解决方案并不是我想要的。

我想知道有更好的解决方案吗? PS:我真的不想在这里使用ajax来实现这些。

2 个答案:

答案 0 :(得分:0)

您可以将目标设置为新标签。在Chrome中,此选项卡会自动关闭。

<a href="/download/test.ppt" target="_blank"><img src="../images/icons/ppt.png" alt="PPT"></a>

答案 1 :(得分:0)

HTML代码是:

&#13;
&#13;
<a href="../downloads/test.docx" target="_blank"><img src="../images/icons/ppt.png" alt="PPT"></a>
&#13;
&#13;
&#13;

我使用nodejs作为服务器,nodejs代码是:

fs.stat(filepath, function(err, stats) {
    if (err)
        throw err;

    var stream = fs.createReadStream(filepath);
    response.setHeader('Content-Type', mime.lookup(filepath));
    response.setHeader('Content-Disposition', 'attachment;    filename=test.docx');
    response.writeHead(200);
    stream.pipe(response);
});