为什么不使用onLoad事件调用我的Javascript函数?

Why won't my Javascript function be called with the onLoad event?

本文关键字:我的 Javascript 函数 调用 事件 onLoad 为什么不      更新时间:2023-09-26

我试图测试我的代码…但我无法调用任何Javascript函数。我尝试了很多事情:制作按钮来调用我现有的函数,尝试用这段代码调用新函数,将我的函数插入到以前成功的HTML文件中。这些策略都没有奏效。无论我做什么,这个文件中的任何Javascript函数都不会被调用,或者看起来没有被调用。我不知道为什么。

<!DOCTYPE html>
<html>
<head>
<title>Template Page</title>
</head>
<body onLoad="chooser()">
<!--HTML "route" for images-->
<img src="IMG_0000.jpg"></img>
<img src="IMG_0001.jpg"></img>
<img src="IMG_0002.jpg"></img>
<img src="IMG_0003.jpg"></img>
<img src="IMG_0004.jpg"></img>
<script type="text/javascript">
//Create a list of images, choose randomly for that list (to display on the page), and then delete that image from the list
function chooser()
{
    //Declare variables
    var start = 0;
    var end = 9;
    var images = [];
    var imageNumber = start;
    var imageName = "";
    //Add image src's to array
    while (imageNumber <= end)
    {
        if (imageNumber < 10)
        {
            imageName = "IMG_000" + string(imageNumber) + ".jpg";
        }
        else if (imageNumber > 9) && (imageNumber < 100)
        {
            imageName = "IMG_00" + string(imageNumber) + ".jpg";
        }
        else if (imageNumber > 99) && (imageNumber < 1000)
        {
            imageName = "IMG_0" + string(imageNumber) + ".jpg";
        }
        else if (imageNumber > 999) && (imageNumber < 10000)
        {
            imageName = "IMG_" + string(imageNumber) + ".jpg";
        }
        images.push(imageName);
        imageNumber = imageNumber + 1;
        alert(images);
    }
}
</script>
</body>
</html>

您的else-if部分有语法错误,以下是正确的:

    if (imageNumber < 10)
    {
        imageName = "IMG_000" + string(imageNumber) + ".jpg";
    }
    else if ((imageNumber > 9) && (imageNumber < 100))
    {
        imageName = "IMG_00" + string(imageNumber) + ".jpg";
    }
    else if ((imageNumber > 99) && (imageNumber < 1000))
    {
        imageName = "IMG_0" + string(imageNumber) + ".jpg";
    }
    else if ((imageNumber > 999) && (imageNumber < 10000))
    {
        imageName = "IMG_" + string(imageNumber) + ".jpg";
    }

和函数——像string(),你想用它们做什么?将imageNumber从整数转换为字符串?在这种情况下,你不需要任何东西。"+"运算符将自动将数字转换为字符串。因此,删除这些string()使您的最终代码为:

    if (imageNumber < 10)
    {
        imageName = "IMG_000" + imageNumber + ".jpg";
    }
    else if ((imageNumber > 9) && (imageNumber < 100))
    {
        imageName = "IMG_00" + imageNumber + ".jpg";
    }
    else if ((imageNumber > 99) && (imageNumber < 1000))
    {
        imageName = "IMG_0" + imageNumber + ".jpg";
    }
    else if ((imageNumber > 999) && (imageNumber < 10000))
    {
        imageName = "IMG_" + imageNumber + ".jpg";
    }