我正在尝试在我的javascript中向target="_blank"
元素添加<a>
属性,但似乎我的函数以某种方式干扰了元素并且不会添加它。
注意没有target="_blank"
工作正常的功能,只有当我添加动画和延迟功能时才会禁用它。
HTML和JS:
var fbId = document.getElementById('fb-id');
fbId.addEventListener('click', function(e) {
fbId.classList.add("animated", "bounceOut");
fbId.setAttribute('target', '_blank');
e.preventDefault();
var fbLink = fbId.href;
setTimeout(function(url) {
window.location = url;
}, 1000, fbLink);
});
<div class="col-3">
<a id="fb-id" href="https://www.facebook.com" target="_blank">
<img class="social-icon" id="fb-icon" src="img/fb.png" alt="facebook">
</a>
</div>
答案 0 :(得分:2)
你使用了错误的功能 - 你需要使用:
window.open("http://www.google.at", '_blank');
完整代码:
var fbId = document.getElementById('fb-id');
fbId.addEventListener('click', function(e){
fbId.classList.add("animated", "bounceOut");
e.preventDefault();
var fbLink = fbId.href;
setTimeout(function(url) { window.open(url, '_blank'); }, 1000, fbLink);
});
查看正在运行的JsFiddle:http://jsfiddle.net/c29u4w7o/43/,它会调整您的代码,以便在新标签页中打开窗口。
答案 1 :(得分:1)
您的延迟不会在链接后延迟。
您完全取消了关注链接的行为,然后为location
分配新值。
target
属性已成功添加,但未使用该属性,因为链接未被跟踪(浏览器通过location
分配导航)。
如果您想使用JavaScript在新窗口中导航,请拨打window.open()
而不是分配到location
。