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

时间:2013-05-25 06:15:41

标签: javascript function call

我试图测试我的代码......但我无法调用任何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>

1 个答案:

答案 0 :(得分:0)

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";
    }