Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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 Java脚本在Firefox上运行正常,但在Chrome上运行不正常_Javascript - Fatal编程技术网

Javascript Java脚本在Firefox上运行正常,但在Chrome上运行不正常

Javascript Java脚本在Firefox上运行正常,但在Chrome上运行不正常,javascript,Javascript,考虑到Firefox上运行的以下Java脚本,我会在图像显示在屏幕上后收到警报,这是应该的: document.getElementById(c).children[0].src = "i/" + table16[c] + ".png"; alert(c); 但是,如果我在Chrome上运行相同的脚本,我会在图像显示在屏幕上之前收到警报。这造成了问题。 为什么会发生这种情况? 如何在处理第二行之前强制Chrome完全执行第一行?创建一个JSFIDLE演示您可以在这里找到可能的解决方案:谢谢。我

考虑到Firefox上运行的以下Java脚本,我会在图像显示在屏幕上后收到警报,这是应该的:

document.getElementById(c).children[0].src = "i/" + table16[c] + ".png";
alert(c);
但是,如果我在Chrome上运行相同的脚本,我会在图像显示在屏幕上之前收到警报。这造成了问题。 为什么会发生这种情况?
如何在处理第二行之前强制Chrome完全执行第一行?

创建一个JSFIDLE演示您可以在这里找到可能的解决方案:谢谢。我检查了你的链接,看到上面提到的img.complete属性,所以我删除了警报(c);行并添加了以下行:do{console.log(document.getElementById(c).children[0].complete);}而(!document.getElementById(c).children[0].complete);现在Firefox仍然运行正常。它加载图像,在控制台上报告“true”,并正确进行处理。Chrome只是在控制台上不断报告“false”,然后陷入困境——我必须在任务管理器中杀死它。问题似乎是,当Firefox在处理脚本中的任何指令之前等待加载图像时,Chrome甚至在图像完全加载之前也会继续处理代码。但是当Chrome处理任何东西时,图像永远不会加载。所以,我需要的是让Chrome在加载图像之前停止处理代码。有什么想法吗?