从后台获取一个网页链接,怎么用jquery使得这个链接打开一个新的页面或者进入下载状态

如题,我从后台获取了ajaxData.data是个链接,请问我要怎么使得获取的这个链接能够打开一个新的窗口,或者让其处于下载状态呢?我点击一个按钮,弹框出来,然后就是要打开新链接的界面。location.href只能在本页面打卡,window.open也不知道为什么不起作用。这个链接是个下载链接,最主要的是想让他能够直接进入下载状态

 $("button").on("click", function () {
        copyLink.head.token = localStorage.token;
        copyLink.param.reservationId = $(this).attr("id");
        var that = this;
        $.postJSON("CopyExperimentDocumentDownloadLink", copyLink, function (ajaxData) {
            localStorage.token = ajaxData.head.token;
            if (ajaxData.head.code === "C2000") {
                 $("#loadDocumentModal").modal('show');  //就是这里接着要弹出链接的新界面
            } else {
                var failmsg = ajaxData.data.reasonOfFailure;
                alert("下载链接复制失败!" + failmsg);
            }
        })
    });
回复
阅读 5.8k
5 个回答

换一种思路吧,写一个隐藏的a标签,然后ajax成功后吧你的链接赋值给a标签的href,然后模拟点击

<a  style="display: none;" class="download"></a>

    var download = document.getElementsByClassName('download')[0];
    download.setAttribute('href',ajaxData.data);
    download.setAttribute('download',"2"); //设置文件名称
    download.click();

window.open有问题,是因为很多浏览器屏蔽弹出新窗口……
所以,楼上童鞋说的那种模拟一个a标签,然后打开的方法是我经常用的!

window.open应该没问题,你看看参数都有没有填对

呃,我好像没看清题主的需求,sorry~

window.open应该是没问题的
楼主是不是应该注意这个下载链接的文件是否是浏览器的可读文件, 比如它可能是个txt文件, 浏览器就会打开它而不是下载它了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏