Javascript 脚本放在主体标记中不起作用
名为One.jpg到Ten.jpg的图像位于我桌面上的“myFolder”文件夹中。下面是一个代码,可以从myFolder中总共十个图像中一次旋转三个图像,html文件也在同一个文件夹中。如何编写src以便该代码可以工作。警报消息给出了这10个图像的名称,但进一步说,它不起作用。脚本放在主体标记中不起作用。有什么问题需要纠正,以获得更快的结果Javascript 脚本放在主体标记中不起作用,javascript,html,Javascript,Html,名为One.jpg到Ten.jpg的图像位于我桌面上的“myFolder”文件夹中。下面是一个代码,可以从myFolder中总共十个图像中一次旋转三个图像,html文件也在同一个文件夹中。如何编写src以便该代码可以工作。警报消息给出了这10个图像的名称,但进一步说,它不起作用。脚本放在主体标记中不起作用。有什么问题需要纠正,以获得更快的结果 <html> <body> <img id = "im1"><img id = "im2"><i
<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
部分时,应该加载HTML,因此脚本使用的元素很可能会出现script
- 在加载最慢的部分(脚本)之前,您可以向用户显示一些内容
- 您可以从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)中是否出现任何错误或什么都没有发生?您希望发生什么?