中易网

这个网页的JavaScript代码哪儿出错了?

答案:5  悬赏:60  
解决时间 2021-04-28 00:09
  • 提问者网友:若相守£卟离
  • 2021-04-27 18:46

<html>
<head>
<title>One by one</title>
<script language="javascript">
function MArray()
{
this.length=MArray.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=MArray.arguments[i]
}
var fArray=new MArray;
fArray[0]="你好,欢迎查看我的网页^_^"
fArray[1]="From TB"
var x=1
var y=0
function newsSee()
{
if(x==msgl.length+1)
{
y+=1
if(y>3)
y=0
document.froml.news2.value=" "
msgl=fArray[y];
x=0
}
document.forml.news2.value=msgl.substring(0,x)
x+=1
setTimeOut("newsSee()",100)
}
</script>
</head>

<body onLoad="newsSee()">
<form name="forml">
<p align="center">
<input type="text" name="news2" size="40" >
</p>
</form>
</body>
</html>

正常的应该出现逐字出现的效果啊~

帮忙检查一下~

最佳答案
  • 二级知识专家网友:一个很哇塞的汉子
  • 2021-04-27 19:49

你这个代码,是自己写的? 还是哪里复制来的。。


问题很多。。



首先不说这段代码能不能实现什么效果。。就有以下问题



1. 首先是分号问题,虽然 JS 不要求每句后面都带分号。。但是如果你不带分号的话。 看起来就会很乱。


比如这里


if(y>3)
y=0
document.froml.news2.value=" "
msgl=fArray[y];



这个 if(y>3) 的范围在哪里? 就会看得很模糊



所以,分号一定要带!



2. 函数名大小写问题。。。 setTimeOut("newsSee()",100) 这句。。 是 setTimeout 函数,不是setTimeOut ..



3. 变量定义问题。。 msgl 这个变量 好像没有声明



4. MArray 这个是 ? JS 里,直接Array 就可以了额。。 为什么还要自己定义一个Array ?



写了个代码,可以实现你想要的效果,代码如下,自己去体会一下吧



<html>
<head>
<title>One by one</title>
<script type="text/javascript">
var fArray=["你好,欢迎查看我的网页^_^","From TB"];
var pointer=0;
var tmpstr=0;
var numbers=0;
function toolmao_com(){
setInterval(function(){

if(numbers==0){
tmpstr=fArray[pointer];
}
if(++numbers>tmpstr.length){
pointer++;
numbers=0;
}
if(pointer>=fArray.length){
pointer=0;
}
var o=document.forml.news2;
o.value=tmpstr.substring(0,numbers);
},100);
}
</script>
</head>
<body onLoad="toolmao_com()">
<form name="forml">
<p align="center">
<input type="text" name="news2" size="40" >
</p>
</form>
</body>
</html>

全部回答
  • 1楼网友:滚刀废物浮浪人
  • 2021-04-27 22:24

var fArray=new MArray;

改成

var fArray=new MArray();

  • 2楼网友:劳资的心禁止访问
  • 2021-04-27 21:45

每句代码后面应该加上分号吧

  • 3楼网友:为你轻狂半世殇
  • 2021-04-27 20:17

if(x==msgl.length+1) 这行

变量msgl没定义

  • 4楼网友:woshuo
  • 2021-04-27 20:03

你看下面这个函数,msgl是什么东西,你在哪里定义的啊

function newsSee() { if(x==msgl.length+1) { y+=1 if(y>3) y=0 document.froml.news2.value=" " msgl=fArray[y]; x=0 }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息