我的页面上有一个链接
<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";
}
但它也改变了新打开选项卡的目标。在我的示例中,它打开的不是google,而是facebook。
有没有可能修复它?
发布于 2013-03-13 20:27:29
你的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;
}
发布于 2013-03-13 20:24:58
您可以在单击后使用setTimeout
延迟代码的执行
function changeLink(){
setTimeout(function() {
var link = document.getElementById("mylink");
link.setAttribute('href', "http://facebook.com");
document.getElementById("mylink").innerHTML = "facebook";
}, 100);
}
发布于 2013-03-13 20:26:15
替换
onclick="changeLink();"
通过
onclick="changeLink(); return false;"
取消其默认操作的步骤
https://stackoverflow.com/questions/15385207
复制相似问题