所以,我的页面中有一些链接(< a>类型),标有不同的ID-s。他们有这些属性:
所以,链接看起来像:
<a id="a1" href="thelink" target="_Blank">Link1</a>
<a id="a2" href="thelink" target="_Blank">Link2</a>
<a id="a3" href="thelink" target="_Blank">Link3</a>
etc..
我想要点击一个链接,在新标签页中打开的网址,以及要禁用的原始网页中的链接,但不是这样:
<a id="a3" href="#" target="_Blank">Link1</a
我尝试使用onclick删除“href”属性并onclick以清空“href”属性,但链接未打开,因为onclick首先触发并删除“href”元素,然后链接在新选项卡中打开并且效果不是我想要的。 有一些想法的人?
答案 0 :(得分:0)
怎么样
window.onload=function() {
document.getElementById("a1").onclick=function() {
setTimout(function() {document.getElementById("a1").disabled=true;},10)
}
}
答案 1 :(得分:0)
你可以这样做
<a id="a3" href="http://stackoverflow.com" onclick="a(this);">Link3</a>
<a id="a4" href="http://google.com" onclick="a(this);">Link4</a>
<a id="a5" href="http://wikipedia.org" onclick="a(this);">Link5</a>
<script>
function a(t) {
var href = t.getAttribute("href");
if(href==null || href=="") return;
window.open(href,'_blank');
t.removeAttribute("href");
}
</script>
答案 2 :(得分:0)
您可以使用类名作为指标
来完成事件在这个例子中,我添加了一个类的每个链接,只是为了指示它的目标函数。然后,在页面加载时,我将onclick
事件附加到每个链接。
var links = document.getElementsByClassName('notclicked');
for (var i=0; i<links.length; i++) {
links[i].onclick = function(e) {
if (e.target.className == 'notclicked')
e.target.className = 'clicked';
else {
if (e.preventDefault)
e.preventDefault();
else /* for IE */
e.returnValue = false;
}
}
}
如果它有旧类,只需更改它以备将来点击。如果它有新课程,只需停止活动。