[英]Race Condition using onclick attribute
单击链接时,我尝试调用以下1x1像素(sact.atdmt.com)。 它实际上只是返回一个1x1的图像,但用于ping我们的服务器,并在这种情况下实质上是对点击计数。
<a href="http://www.google.com/" onclick="javascript:img1=new Image(); img1.src='http://sact.atdmt.com/action/adofat_ImageTest27_1'; img1.height='1'; img1.width='1'" ;="">test</a>
上面的代码仅在IE中有效。 我不知道为什么它不能在Chrome或Firefox中使用。 我认为在某种竞态条件下,在对onclick函数执行更改之前就已解决了href,但仅在这些浏览器中存在。
是否有针对此的修复程序?
谢谢,
修复语法错误并添加return false;
<a
href="http://www.google.com/"
onclick="javascript:img1=new Image(); img1.src='http://sact.atdmt.com/action/adofat_ImageTest27_1'; img1.height='1'; img1.width='1'; return false;"
>test</a>
顺便说一句,如果您不显示图像,则无需设置图像的高度/宽度
Ejay的回答很好用,但是我不得不提一提我通常远离onclick =。 这是因为屏幕阅读器无法可靠地将onclicks注册为实际的click事件。
因此,如果您有兴趣...这是执行此操作的安全方法。
function imageClickHandler(){
var img1;
var img1=new Image();
img1.src='http://sact.atdmt.com/action/adofat_ImageTest27_1';
img1.height='1';
img1.width='1';
}//end function
document.getElementByID("TheExampleLink").addEventListener("click",imageClickHandler,false);
<a href="http://www.google.com/" id="TheExampleLink">test</a>
希望对您有所帮助,并且您考虑不使用onclick。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.