Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 脚本放在主体标记中不起作用_Javascript_Html - Fatal编程技术网

Javascript 脚本放在主体标记中不起作用

Javascript 脚本放在主体标记中不起作用,javascript,html,Javascript,Html,名为One.jpg到Ten.jpg的图像位于我桌面上的“myFolder”文件夹中。下面是一个代码,可以从myFolder中总共十个图像中一次旋转三个图像,html文件也在同一个文件夹中。如何编写src以便该代码可以工作。警报消息给出了这10个图像的名称,但进一步说,它不起作用。脚本放在主体标记中不起作用。有什么问题需要纠正,以获得更快的结果 <html> <body> <img id = "im1"><img id = "im2"><i

名为One.jpg到Ten.jpg的图像位于我桌面上的“myFolder”文件夹中。下面是一个代码,可以从myFolder中总共十个图像中一次旋转三个图像,html文件也在同一个文件夹中。如何编写src以便该代码可以工作。警报消息给出了这10个图像的名称,但进一步说,它不起作用。脚本放在主体标记中不起作用。有什么问题需要纠正,以获得更快的结果

<html>
<body>

<img  id = "im1"><img id = "im2"><img id = "im3">

<script type = "text/javascript">

var imgArray = ['One.jpg','Two.jpg','Three.jpg','Four.jpg','Five.jpg', 'Six.jpg', 'Seven.jpg', 'Eight.jpg', 'Nine.jpg', 'Ten.jpg'];

function randOrd(){return (Math.round(Math.random())-0.5)}
imgArray.sort(randOrd);
alert (imgArray);  // FOR TESTING
var len = imgArray.length;
var count = 0;

rotate1();
rotate2();
rotate3();

function rotate1() {
document.getElementById("im1").src= imgArray[count];
count++;
if (count>=len) {count = 0}
var tim1 = window.setTimeout("rotate1()", 3000);  // 3 seconds
}


function rotate2() {
document.getElementById("im2").src = imgArray[count];
count++;
if (count>=len) {count = 0}
var tim2 = window.setTimeout("rotate2()", 5000);  // 5 seconds
}


function rotate3() {
document.getElementById("im3").src = imgArray[count];
count++;
if (count>=len) {count = 0}
var tim3 = window.setTimeout("rotate3()", 7000);  // 7 seconds
}

</script>
</body>
</html>

=len){count=0}
var tim1=window.setTimeout(“rotate1()”,3000);//3秒
}
函数2(){
document.getElementById(“im2”).src=imgArray[count];
计数++;
如果(计数>=len){count=0}
var tim2=window.setTimeout(“rotate2()”,5000);//5秒
}
函数3(){
document.getElementById(“im3”).src=imgArray[count];
计数++;
如果(计数>=len){count=0}
var tim3=window.setTimeout(“rotate3()”,7000);//7秒
}

理想情况下,您可以从外部文件加载脚本,而HTML文件中根本没有JavaScript。然后,您将使用CSP头提供文档。

理想情况下,您将从外部文件加载脚本,并且HTML文件中根本没有JavaScript。然后,您将使用CSP标题提供文档。

最佳做法是,脚本应在单独的文件中取出,然后包含在正文的末尾,如下所示:

<script src="scripts/YourScript.js"></script>

其中,
src
指向该文件

这很好,因为:

  • 浏览器在从上到下解析页面时呈现页面。这意味着当它到达
    body
    标记末尾的
    script
    部分时,应该加载HTML,因此脚本使用的元素很可能会出现

  • 在加载最慢的部分(脚本)之前,您可以向用户显示一些内容

  • 您可以从CDN为脚本提供服务器,这样请求-响应延迟将是最小的

据我所知,这条规则的唯一例外是
modernizer
或类似的浏览器和功能检测库

更新
此处缺少分号:

if(count>=len){count=0}

应该是这样的:

if(count>=len){count=0;}

此外,当您将函数传递给
setTimeout
时,您可以像这样执行:


window.setTimeout(rotate37000)

最佳做法是,脚本应在单独的文件中取出,然后包含在正文的末尾,如下所示:

<script src="scripts/YourScript.js"></script>

其中,
src
指向该文件

这很好,因为:

  • 浏览器在从上到下解析页面时呈现页面。这意味着当它到达
    body
    标记末尾的
    script
    部分时,应该加载HTML,因此脚本使用的元素很可能会出现

  • 在加载最慢的部分(脚本)之前,您可以向用户显示一些内容

  • 您可以从CDN为脚本提供服务器,这样请求-响应延迟将是最小的

据我所知,这条规则的唯一例外是
modernizer
或类似的浏览器和功能检测库

更新
此处缺少分号:

if(count>=len){count=0}

应该是这样的:

if(count>=len){count=0;}

此外,当您将函数传递给
setTimeout
时,您可以像这样执行:



window.setTimeout(rotate37000)

忽略“最佳”实践,您的问题是您没有结束
标记。

忽略“最佳”实践,您的问题是您没有结束
标记。

您能用完整的代码创建一个小提琴吗?没有body元素吗?没有脚本元素关闭?这看起来一团糟。嗨,戴斯特罗伊,谢谢你指出我的错误,实际上这是由于不正确的复制和粘贴到框中。我要更正它。您缺少一个分号:
如果(count>=len){count=0}
。下面更新了我的答案。这在Chrome中运行良好。你看到的问题是什么?关于它,除了“它不工作”之外,你没什么可说的。你能用完整的代码创建一个小提琴吗?没有body元素吗?没有脚本元素关闭?这看起来一团糟。嗨,戴斯特罗伊,谢谢你指出我的错误,实际上这是由于不正确的复制和粘贴到框中。我要更正它。您缺少一个分号:
如果(count>=len){count=0}
。下面更新了我的答案。这在Chrome中运行良好。你看到的问题是什么?除了“它不起作用”之外,你没有说太多。他说他有一个,这只是一个复制粘贴的问题。他说他有一个,这只是一个复制粘贴的问题。嗨,安德烈,我已经做了你建议的更正,但仍然不起作用。你能检查这部分代码的函数randOrd(){return(Math.round(Math.random())-0.5)}这段代码返回+0.5和-0.5,因此排序应该进行得很好。您所说的
不起作用的确切含义是什么?
?您在控制台(F12)中有错误吗或者什么都没有发生?您希望发生什么?嗨,Andrei,我已经做了您建议的更正,但仍然不起作用。请检查这部分代码的函数randOrd(){return(Math.round(Math.random())-0.5)}'这段代码返回+0.5和-0.5,因此排序应该进行得很顺利。您所说的
不起作用的确切含义是什么?
?您在控制台(F12)中是否出现任何错误或什么都没有发生?您希望发生什么?