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