在Firefox中,在onclick触发器中获取锚的href

In Firefox, get href of anchor in onclick trigger

本文关键字:href 获取 onclick Firefox 触发器      更新时间:2023-09-26

使用以下html:

<div>
   <a href='#link1' onclick='func()' >Link 1</a>
   <a href='#link2' onclick='func()' >Link 2</a>
   <a href='#link3' onclick='func()' >Link 3</a>
</div>
function func() {
   var href = ??;
   if( href.match(/#link1/) ) {
      ...
   }
}

在Chrome(和IE?)中可以使用此代码

var href = window.event.target.href;

但是window.event在Firefox 中不存在

如果事件是通过addEventListener附加的,那么可以将e作为参数,但在html中声明时,无法将事件传递给onclick函数。

this传递给您的函数,然后直接访问href属性。this将引用进行调用的元素。您可能还想返回false-这会阻止单击的链接进行导航。

http://jsfiddle.net/qjXVy/

function func(elem) {
    alert(elem.href);
    return false;
}

 

<div>
   <a href="#link1" onclick="func(this)" >Link 1</a>
   <a href="#link2" onclick="func(this)" >Link 2</a>
   <a href="#link3" onclick="func(this)" >Link 3</a>
</div>

您确实在onclick处理程序本身中获得了作为参数的事件。所以你可以做:

 <a href="#link1" onclick="func(event)" >Link 1</a>

然后您可以在func中查看事件目标。