Javascript 无法使函数自动刷新

Javascript 无法使函数自动刷新,javascript,html,css,Javascript,Html,Css,我无法使函数在设定的时间段内自动刷新 我有一个测试页面,我想在其中模拟一段时间内的自动刷新。假设我有4个图像,我希望它们在“点”自动刷新时随机显示 这就是我目前的情况: var imageURL=[ "https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg", "http://orissadiary.com/wp-content/uploads/2017/03/advertise-h

我无法使函数在设定的时间段内自动刷新

我有一个测试页面,我想在其中模拟一段时间内的自动刷新。假设我有4个图像,我希望它们在“点”自动刷新时随机显示

这就是我目前的情况:


var imageURL=[
"https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
"http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
"https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
"https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
];
函数getImageTag(){
var img=“”;
返回img;
}
write(getImageTag());
setInterval('getImageTag()',3000);

去掉函数上的引号并添加“窗口”

<script type="text/javascript">
     getImageTag();
     window.setInterval(getImageTag, 3000);
</script>

getImageTag();
setInterval(getImageTag,3000);
此外,代码应该更像这样:

<html>
<head>
    <script type="text/javascript">
         var imageURLs = [
             "https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
             "http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
             "https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
             "https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
         ];

        function getImageTag() {
            var img = '<img src=\"';
            var randomIndex = Math.floor(Math.random() * imageURLs.length);
            img += imageURLs[randomIndex];
            img += '\" alt=\"Some alt text\"/>';
            return img;
        }
     </script>
 </head>

     <body>
          <div class="autorefresh">   
              <script type="text/javascript">
                  window.onload = function() {
                      document.write(getImageTag());
                      window.setInterval(getImageTag(), 3000);
                  };
              </script>
          </div>
     </body>
</html>

var imageURL=[
"https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
"http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
"https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
"https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
];
函数getImageTag(){
var img=“”;
返回img;
}
window.onload=函数(){
write(getImageTag());
setInterval(getImageTag(),3000);
};

去掉函数上的引号并添加“窗口”

<script type="text/javascript">
     getImageTag();
     window.setInterval(getImageTag, 3000);
</script>

getImageTag();
setInterval(getImageTag,3000);
此外,代码应该更像这样:

<html>
<head>
    <script type="text/javascript">
         var imageURLs = [
             "https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
             "http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
             "https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
             "https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
         ];

        function getImageTag() {
            var img = '<img src=\"';
            var randomIndex = Math.floor(Math.random() * imageURLs.length);
            img += imageURLs[randomIndex];
            img += '\" alt=\"Some alt text\"/>';
            return img;
        }
     </script>
 </head>

     <body>
          <div class="autorefresh">   
              <script type="text/javascript">
                  window.onload = function() {
                      document.write(getImageTag());
                      window.setInterval(getImageTag(), 3000);
                  };
              </script>
          </div>
     </body>
</html>

var imageURL=[
"https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
"http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
"https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
"https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
];
函数getImageTag(){
var img=“”;
返回img;
}
window.onload=函数(){
write(getImageTag());
setInterval(getImageTag(),3000);
};

以下是添加新添加的解决方案:


函数getRandomInt(最小值、最大值){
min=数学单元(min);
最大值=数学楼层(最大值);
返回Math.floor(Math.random()*(max-min+1))+min;
}
var imageURL=[
"https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
"http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
"https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
"https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
];
函数getImageTag(){
var img=“”;
返回img;
}
函数更新(){
write(getImageTag());
}
设置间隔(更新,3000);

以下是添加新添加的解决方案:


函数getRandomInt(最小值、最大值){
min=数学单元(min);
最大值=数学楼层(最大值);
返回Math.floor(Math.random()*(max-min+1))+min;
}
var imageURL=[
"https://upload.wikimedia.org/wikipedia/commons/2/24/Ad-MediumRectangle-300x250.jpg",
"http://orissadiary.com/wp-content/uploads/2017/03/advertise-here-300x250.png",
"https://pics.me.me/medium-rectangle-300px-x-250px-18306117.png",
"https://travelfree.info/wp-content/uploads/2015/08/1454913661banner300.gif"
];
函数getImageTag(){
var img=“”;
返回img;
}
函数更新(){
write(getImageTag());
}
设置间隔(更新,3000);

这是不正确的:“window.setInterval(getImageTag(),3000);”只要尝试一下:函数getI(){console.log(“not work”)}window.setInterval(getI(),3000);因为()导致函数在那里执行,然后在声明计时器时执行,然后计时器在时间到期时尝试执行函数的结果。如果要传递对函数的引用,请删除()。另外,如果这需要无限重复(从问题中看起来很可能),那么使用一个间隔而不是timeout。您还忘了让getImageTag函数实际输出任何内容到页面中。在这里,我修复了它。这是不正确的:“window.setInterval(getImageTag(),3000);”只需尝试一下:函数getI(){console.log(“not work”)}setInterval(getI(),3000);因为()导致函数在那里执行,然后在声明计时器时执行,然后计时器在时间到期时尝试执行函数的结果。如果要传递对函数的引用,请删除()。如果需要重复此操作,请注意