Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 铬合金/FF中的竞争条件_Javascript_Html_Onclick - Fatal编程技术网

Javascript 铬合金/FF中的竞争条件

Javascript 铬合金/FF中的竞争条件,javascript,html,onclick,Javascript,Html,Onclick,早些时候,我提交了一个线程,试图实现以下atdmt.com像素,点击链接即可启动: <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> 像素是用于记录系统中活动的1x1图

早些时候,我提交了一个线程,试图实现以下atdmt.com像素,点击链接即可启动:

<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>

像素是用于记录系统中活动的1x1图像。这适用于IE,但不适用于Chrome和Firefox。我认为登录页面URL(google.com)加载得太快,图像(sact.atdmt.com)没有足够的机会加载。我正在使用ChromeDevTools/Fiddler检查标签是否触发

有人提出了以下解决方案:

<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>

但这并不能解析实际的URL(尽管像素会激发,但当您单击链接时不会发生任何事情)

另一个用户建议使用eventlistener而不是onclick属性,但当我单击链接时,这仍然不会触发像素

 <script>
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);
</script>

<a href="http://www.google.com/" id="TheExampleLink">test</a>

函数imageClickHandler(){
var-img1;
var img1=新图像();
img1.src=http://sact.atdmt.com/action/adofat_ImageTest27_1';
img1.高度=1';
img1.width='1';
}//端函数
document.getElementByID(“TheExampleLink”).addEventListener(“单击”,imageClickHandler,false);
理想情况下,像素(jact.atdmt.com)应该会熄灭,然后我应该被带到。。。但是,由于我前面提到的竞争条件,像素并不总是被激发

对于如何解决这个问题,有什么建议吗


谢谢,

在您上次引用的建议中 试试这个:

setTimeOut(imageClickHandler(), 0);
如果这不起作用

试试这个-

<script>

function imageClickHandler(){ 
var img1; 
var img1=new Image();
img1.src='http://sact.atdmt.com/action/adofat_ImageTest27_1';
img1.height='1'; 
img1.width='1'; 
setTimeout(function(){window.location.href='www.google.com'},5000);
}//end function

    document.getElementByID("TheExampleLink").addEventListener("click",imageClickHandler,false);

函数imageClickHandler(){
var-img1;
var img1=新图像();
img1.src=http://sact.atdmt.com/action/adofat_ImageTest27_1';
img1.高度=1';
img1.width='1';
setTimeout(函数(){window.location.href='www.google.com'},5000);
}//端函数
document.getElementByID(“TheExampleLink”).addEventListener(“单击”,imageClickHandler,false);



您可能可以通过一个同步ajax请求来实现这一点(尽管您必须遵守同源策略)。0毫秒的setTimeout相当于java中的yield方法。它基本上是让其他事情发生在ExecutionGinner听说过时间切片模型之前有时候,要知道正确的解决方法需要更多的时间;-)哇!你是无所不知的先生。。荣誉:P
<a href="javascript:void(0)" id="TheExampleLink">test</a>