这是JS代码
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;
} else {
window.onload = function(){
oldonload();
func();
}
}
}function moveElement(elementID,final_x,final_y,interval){
if(!document.getElementById) return false;
if(!document.getElementById(elementID)) return false;
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if(xpos == 200 && ypos == 100){
return true;
}
if(xpos < final_x){
xpos++;
}
if(xpos > final_x){
xpos--;
}
if(ypos < final_y){
ypos++;
}
if(ypos > final_y){
ypos--;
}
elem.style.left = xpos + 'px';
elem.style.top = ypos + 'px';
var repeat = "moveElement("'+elementID+'","+final_x","+final_y+","+interval+")";
movement = setTimeout(repeat,interval);
}function positionMessage(){
if(!document.getElementById) return false;
if(!document.getElementById('message')) return false;
var elem = document.getElementById('message');
elem.style.position = 'absolute';
elem.style.left = '50px';
elem.style.top = '100px';
moveElement("message",200,200,10);
}addLoadEvent(positionMessage);这是HTML的代码
<html>
<head>
<title>test</title>
<script src="positionMessage.js"></script>
</head>

<body>
<p id="message">
Whee!
</p>
</body>
</html>上面在火狐中出现了missing ; before statement这个错误,在var repeat = "moveElement("'+elementID+'","+final_x","+final_y+","+interval+")"; 这里出现的错误

解决方案 »

  1.   

    var repeat = "moveElement("'+elementID+'","+final_x","+final_y+","+interval+")";引号的问题,JS引擎在解析的代码的时候,认为红色部分是一条语句,在JS中,多条语句可以写在同一行中,但语句必须以分号结束,所以报缺少分号的错误,修改:
    var repeat = "moveElement('" + elementID + "'," + final_x ", "+final_y + "," + interval + ")";
      

  2.   

    谢谢1楼的,知道是什么问题了,不过换成 var repeat = "moveElement('"+elementID+"',"+final_x","+final_y+","+interval+")";
    也会出现那个问题。
      

  3.   

    哦。。final_x后面还漏了个连接运算符:
    var repeat = "moveElement('" + elementID + "'," + final_x + ", "+final_y + "," + interval + ")";