首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在新窗口中打开链接后使用JavaScript更改href属性?

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

Stack Overflow用户
提问于 2013-03-13 20:21:57
回答 5查看 155.4K关注 0票数 21

我的页面上有一个链接

代码语言:javascript
复制
<a href="http://google.com" id="mylink" onclick="changeLink();" target="_blank">google</a>

目标是按照这个链接(在新选项卡中打开)并更改其属性(在上一个选项卡上)。我的意思是,我们在一个新的选项卡中打开google.com,如果我们回过头来看这个链接,它会被刷新。

我已经尝试过这个js代码。

代码语言:javascript
复制
function changeLink(){
    document.getElementById("mylink").href = "http://facebook.com";
    document.getElementById("mylink").innerHTML = "facebook";
    }

但它也改变了新打开选项卡的目标。在我的示例中,它打开的不是google,而是facebook。

有没有可能修复它?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-13 20:27:29

你的onclick在href之前触发,所以它会在页面打开之前改变,你需要让函数像这样处理窗口的打开:

代码语言:javascript
复制
function changeLink() {
    var link = document.getElementById("mylink");

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

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

    return false;
}
票数 50
EN

Stack Overflow用户

发布于 2013-03-13 20:24:58

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

代码语言:javascript
复制
function changeLink(){
    setTimeout(function() {
        var link = document.getElementById("mylink");
        link.setAttribute('href', "http://facebook.com");
        document.getElementById("mylink").innerHTML = "facebook";
    }, 100);
}
票数 4
EN

Stack Overflow用户

发布于 2013-03-13 20:26:15

替换

代码语言:javascript
复制
onclick="changeLink();"

通过

代码语言:javascript
复制
onclick="changeLink(); return false;"

取消其默认操作的步骤

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15385207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档