使用<a href="javascript:fn()"><a>调用js方法 获得 a标签的对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用<a href="javascript:fn()"><a>调用js方法 获得 a标签的对象?相关的知识,希望对你有一定的参考价值。

var fn = function(e) e = window.event || e; var o = e.srcElement || e.target ; 获得的o为空,为什么? 不使用onclick 或其他事件辅助 怎么获得对象呢?
浏览器 firefox , e获得的是 window对象

参考技术A 改为 <a href="javascript:fn(event)"><a> 火狐要想得到event对象,必须手动传入,Ie不用追问

event is not defined, 我传 fn(this) 可以获取到 [Object Window]但还是获得不到目标

追答


function test(e)
alert(e);
e=e||window.event;
alert(e);


test

追问

不使用onclick 只用href javascript的方式

追答

你通过href去掉用javascript代码,相当于执行了连接,获取不到事件源吧(连接不属于连接不属于事件的),你既然要执行javascript代码,为什么非要在href中执行

本回答被提问者采纳
参考技术B 使用选择器,js里好像有getElementById等
参考http://www.w3school.com.cn/jsref/met_doc_getelementbyid.asp追问

我的需求中这个a标签不能加id, 不能使用dom的方法获取,只能通过这个方法传递自己

参考技术C a标签中的href的目的是打开url对应的文档,使用javascript:伪协议只是单纯地执行javascript代码,没有触发事件,所以是获取不到事件对象的。event对象所表示的是一个事件对象,当有事件被触发时该对象才会存在,没有触发事件那么事件对象自然也就不存在了。
比如下面的代码就是单纯的执行一个console.log方法,输出的结果两个都是undefined:
<script type="text/javascript">
function test(e)
console.log(window.event);
console.log(e);

test(window.event);
</script>

以上是关于使用<a href="javascript:fn()"><a>调用js方法 获得 a标签的对象?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery插件模板

ajax加载txt文档出现乱码

使用 --- innerHTML = "...<a href='http://...'>HttpLink</a>..." 在 javascript 函数中创

使用 Emmet 将 url 添加到 <a href="">

使用 <a href="data; ..."> 显示图像是不是安全?

在这种情况下使用 <a href="http://name.com" rel="noindex, nofollow">name</a>