Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE引发了无效参数错误,firefox没有';T_Javascript_Internet Explorer - Fatal编程技术网

Javascript IE引发了无效参数错误,firefox没有';T

Javascript IE引发了无效参数错误,firefox没有';T,javascript,internet-explorer,Javascript,Internet Explorer,当我想展示JavaScript的强大功能时,我正在帮助一位朋友学习HTML、CSS等。我们制作了一些包含云图像的div,并将其在broswer上移动(从右到左,然后当它从页面流出时,返回到窗口innerWidth的起点),因此它看起来像天空-一个非常简单的脚本。现在在Firefox中一切都很好,但当我稍后在IE中看到这一点时,我注意到了一个错误。这不是一个真正的问题,因为脚本工作,但我想知道为什么会发生,以及如何阻止它 下面是我在window.onload事件中使用不引人注目的加载程序调用的脚本

当我想展示JavaScript的强大功能时,我正在帮助一位朋友学习HTML、CSS等。我们制作了一些包含云图像的div,并将其在broswer上移动(从右到左,然后当它从页面流出时,返回到窗口innerWidth的起点),因此它看起来像天空-一个非常简单的脚本。现在在Firefox中一切都很好,但当我稍后在IE中看到这一点时,我注意到了一个错误。这不是一个真正的问题,因为脚本工作,但我想知道为什么会发生,以及如何阻止它

下面是我在window.onload事件中使用不引人注目的加载程序调用的脚本

    function moveCloud(cloudID, TimeOut, CloudWidth, thisLeft){

    var elem = document.getElementById(cloudID);
    var xpos = parseInt(elem.style.left);

    if(xpos > -CloudWidth){
        xpos--; 
      }else{
        xpos = window.innerWidth;
       }

    elem.style.left = xpos + "px";
    movement = setTimeout("moveCloud('" + cloudID + "'," + TimeOut + "," + CloudWidth + "," + thisLeft+ ")",TimeOut);
}
我认为这可能是因为将一个整数与一个sting合并,但我认为JavaScript处理了这个转换?有什么想法吗

这就是错误所在

第38行错误:参数无效

*更新***

这就是我调用函数的方式,首先是

function StartCloud(cloudID, TimeOut, CloudWidth, thisLeft, thisTop){


    var elem = document.getElementById(cloudID); 
    if(elem){ // make sure item exists then position it via the JavaScript not the CSS
        elem.style.position = "absolute"; 
        elem.style.left = parseInt(thisLeft) + "px";
        elem.style.top = parseInt(thisTop)  + "px";
        movement = setTimeout("moveCloud('" + cloudID + "'," + TimeOut + "," + CloudWidth + "," + thisLeft+ ")",TimeOut); // start the animation function
    }
}
这是我的电话-有4个云彩分区

window.onload = function (){
    //unobtrussive event handler
    StartCloud('cloud1', 60, 717, 450, 30);
    StartCloud('cloud2', 35, 349, 950, 230);
    StartCloud('cloud3', 30, 335, 300, 260);
    StartCloud('cloud4', 15, 290, 600, 450);
}

哼!IE不支持Window.innerWidth,因此我必须使用document.documentElement.clientWidth编写一个条件;在38号线,傻我,忘了那一点!我想说你错了,这不是我的底线
无效参数
意味着某种形式的函数调用。您在parseInt上也缺少一个基数
parseInt(elem.style.left,10)
您是否在使用
setTimeout
重复执行某项操作?呸!IE不支持Window.innerWidth,因此我必须使用document.documentElement.clientWidth编写一个条件