根据接口请求到的数据动态更改href的地址,并在新窗口打开,实现不了?

依依雨柔
  • 233
<button type="button">
    <a onclick="viewPDF(this,id)" href="" target="_blank">简历</a>
</button>
function viewPDF(obj,as){
    $.ajax({
        url:'url',
        type:'post',
        dataType:'json',
        data:{
            id:as
        },
        success:function(data){
            if(data.data!==null){
                $(obj).attr('href',data.data)
                window.location.href=data.data;
           }
    
        },
        error:function(){
            console.log('路径获取失败')
        }
    })
想要的是拿到了简历路径则在新窗口打开,否则不跳转页面也不刷新页面,现在的问题是在没有拿到简历的情况下,也会在新窗口打开当前html页面
回复
阅读 1.5k
3 个回答
babe
  • 963
✓ 已被采纳

你这个把功能弄混了:

window.location.href = 'https://www.baidu.com/'  -- 这个不能加参数,直接在当前页面跳转
window.open("https://www.baidu.com/","_blank")   -- 可以加_blank参数

上面的a标签就不要了,把onclick="viewPDF(this,id)"放在button上面即可

如果使用a标签,则需要将a标签改为:
<a href="javascript:void(0)" onclick="viewPDF(this,id)">click</a>

window.open(url)

别这么麻烦,直接用button,点击以后异步获取到url后就window.open(link)就行了

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