题库 题库

【简答题】

试题四(共15分,每空3分)
[说明]
  图4是用JavaScript编写的电子公告栏程序的执行效果,实现了预设消息的循环逐条发布。程序采用逐字延时的方式显示每条消息,模拟了类似打字机的效果。 
   
[HTML文本]
<html>
<body>
<title>电子公告栏</title>
<script language=”JavaScript”>
var i = 0; // 表示从当前消息中提取的字符个数
var TextNumber = -1; // 当前所显示的消息的序号(取值范围0-7)
var TextInput = new Object(); // 存放消息的数组
TextInput[0] = “中科院发表全基因纠测序论文”;
TextInput[1] = “未来两天中东部地区各有降水,局部地区大幅降温”;
TextInput[2] = “俄一直升机执行任务时坠毁,机上12人可能全遇难”;
TextInput[3] = “美国宇航局:哥伦比亚号解体在返航时已经注定”;
TextInput[4] = “统计显示Google取代雅虎成为最大搜索服务网站”;
TextInput[5] = “挑战极限自然条件,联想昭阳勇攀珠峰!”;
TextInput[6] = “第一攻击手刘昌赫再试牛刀,力压李世右”;
TextInput[7] = “姚明击败奥尼尔大威,美刊非白人体育人士列第一”;
TotalTextInput = 8;
var HotText = “ ”; // 当前要显示的公告消息
var Text = “ “; // 目前已经滚动显示出的文字
var Speed = 50; // 显示速度
var TimerId; // 定时器标识
var TimerOn = false; // 定时标记
function nextMessage() // 显示下一条消息
{
if (!TimerOn)
{
TimerOn = true;
clearTimeout (TimerId);
TextNumber = __(1)__ ; // 计算下一条消息在数组中的存放位置
document.forms[0].elements[1].value = TextNumber +1;
HotText = __(2)__ ; // 当前待显示的消息
teletype();
}
}
function teletype()
{
if (TimerOn)
{
TimerId = __(3)__ ; // 将消息写在消息框中
document.forms[0].elements[0].value = __(4)__ ;
}
}
function rollMessage() // 从待显示的消息中提取前i 个字符返回给teletype()显示
{
i++;
var CheckSpace = HotText.substring(i-1,i);
CheckSpace = ““ + CheckSpace;
if (CheckSpace == “ “) i++;
if (i >= HotText.length + 1)
{
TimerOn = false;
Text = HotText.substring(0,i);
i = 0;
return (Text);
}
Text = HotText.substring(0,i);
return (Text);
}
</script>
</head>
<body>
<form>
<p align=”center”>电子公告栏</p>
<table>
<-- 中间省略网页结构性文档 -->
<input TYPE=”text” value=”共8条” SIZE=”5” name=”1”>
<input TYPE=”button” VALUE=”下一条” _dj=” __(5)__ ”>
</table>
</form>
</body>
</html>

参考答案

(1) (TextNumber+1)%TotalTextInput或 ++TextNumber%TotalTextInput
(2) TextInput[TextNumber]
(3) setTimeout(“teletype( )”,Speed)
(4) rollMessage( )
(5) nextMessage( )

相关试题