如何在打开新窗口中的链接后使用JavaScript更改href属性?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (126)

页面上有一个链接

<a href="http://google.com" id="mylink" onclick="changeLink();" target="_blank">google</a>

目标是遵循此链接(在新选项卡中打开)并更改其属性(在上一个选项卡上)。我的意思是我们在一个新的标签页面中打开google.com,如果我们回头查看链接,它就会刷新。

我试过这个js代码

function changeLink(){
    document.getElementById("mylink").href = "http://facebook.com";
    document.getElementById("mylink").innerHTML = "facebook";
    }

但它也改变了新开标签的目标。而不是打开谷歌它在我的例子中打开Facebook。

有可能解决它吗?

提问于
用户回答回答于

onclick在href之前开火,所以它会在打开页面之前改变,你需要让函数处理窗口打开,如下所示:

function changeLink() {
    var link = document.getElementById("mylink");

    window.open(
      link.href,
      '_blank'
    );

    link.innerHTML = "facebook";
    link.setAttribute('href', "http://facebook.com");

    return false;
}
用户回答回答于

可以使用setTimeout在单击后执行来延迟代码

function changeLink(){
    setTimeout(function() {
        var link = document.getElementById("mylink");
        link.setAttribute('href', "http://facebook.com");
        document.getElementById("mylink").innerHTML = "facebook";
    }, 100);
}

扫码关注云+社区

领取腾讯云代金券