【问题标题】:Why won't my Javascript function be called with the onLoad event?为什么我的 Javascript 函数不会被 onLoad 事件调用?
【发布时间】:2013-05-25 06:15:40
【问题描述】:

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

【问题讨论】:

  • 我还应该补充一点,我已经多次检查语法错误并使用了许多 lint 检查器。不过我可能错过了一些东西。
  • 你考虑过打开javascript控制台吗?我的代码有很多语法错误...
  • 为什么一定要在onLoad中调用?在定义之后调用它。或者更好的是,放弃函数并将脚本放在 HEAD 中。

标签: javascript function call


【解决方案1】:

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

【讨论】:

  • ZOMG。我知道事情会这么简单。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多