下面的代码不起作用...(至少在火狐中不是:document.getElementById('linkid').click()
不是一个函数)
<script type="text/javascript">
function doOnClick() {
document.getElementById('linkid').click();
//Should alert('/testlocation');
}
</script>
<a id="linkid" href="/testlocation" onclick="alert(this.href);">Testlink</a>
发布于 2009-05-25 12:35:13
您需要在该元素的上下文中apply
事件处理程序:
var elem = document.getElementById("linkid");
if (typeof elem.onclick == "function") {
elem.onclick.apply(elem);
}
否则,this
将引用执行上述代码的上下文。
发布于 2013-05-27 17:59:49
解决这个问题的最好方法是使用Vanilla JS,但是如果你已经在使用jQuery,有一个非常简单的解决方案:
<script type="text/javascript">
function doOnClick() {
$('#linkid').click();
}
</script>
<a id="linkid" href="/testlocation" onclick="alert(this.href);">Testlink</a>
在IE8-10,Chrome,Firefox中测试。
发布于 2009-05-25 12:21:46
要触发事件,基本上只需调用该元素的事件处理程序即可。对您的代码稍作修改。
var a = document.getElementById("element");
var evnt = a["onclick"];
if (typeof(evnt) == "function") {
evnt.call(a);
}
https://stackoverflow.com/questions/906486
复制相似问题