阅读下列说明和HTML文本,分析其中嵌入的JavaScript脚本,将应填入 ______处的语句写在对应栏内.
【说明】 在网页正中靠上显示一个固定的时钟,如图8-1所示。 HTML文本如下所示.<html><!-省略部分为HTML文本框><body onload="rad();counter(); ob();setNum();setlnterval(’timer(),100); setlnterval(’runClock ()’,100)"><script language="JavaScdpt">var dot=60; //挂钟外边缘上的60个刻度rads= (1) ;function rad () {for (i=1; i<dot; i++) {//初始化刻度 if (document.all) rads[i]=new Array (eval(’rad’+i).style,-100, -100); else rads[i]: new Array (eval(’document. rad’+i),-100,-100); }}function setCircle() {//求外缘上60 个刻度的实际位置 for (i=1; i<dot; i++) { rads[i][0].left=rads[i][1]+pX-15; if ( (2) )//检验是否是 NetScape4.x rads[i][0].left+=10; rads[i][0].top=rads[i][2]+pY-20; }}function counter() {//设置外边缘上 60 个刻度相对于刻度中心的位置 for 0=1; i<dot; i++) { rad=Math. P1*(i/((dot-1)/2)); rads[i][1] = Math. sin(rad)*60; rads[i][2] = -Math.cos(rad)*60; }setCircle();}pX=400;pY=150; //中心位置obs=new Array(13); //储存秒针、分针、时针各组成部分位置的数组function ob () {//初始化秒针、分针、时针各组成部分for (i=0; i<13; i++) { if (document.all) obs[i]=new Array (eval(’ob’+i), style,-100, 100); else obs[i] = new Array (eval(’document.ob’+i), -100, -100); }}function cl(a,b,c){ if (document.all)//判断游览器种类,为真表示为IE { if (a!=0) b+= 1; eval(’c’+a+’.style.pixelTop=’+(pY+(c-5))); eval(’o’+a+’.style.pixetLeft=’+(pX+(b))); }else{ if (a!=0) b+=10; eval(’document.c’+a+’.top=’+(pY+{c))); eval(’document.c’+a+’.left:’+(pX+(b))):}}function runClock() {//求秒针、分针、时针各组成部分在屏幕上的实际位置 for (i=0; i<13; i++) { obs[i][0].left= (3) ; obs[i][0].top=obs[i][2]+pY; }}function timer() { time = new Date ();//获取系统当前时间 sec= (4) ;//计算秒针、分针、时针各自转动的角度 sec=Math. Pl*sec/30; min=Math. Pl*time.getMinutes()/30; hr =Math. Pl* ((time.getHours ()*60)+time, getMinutes ())/360; //设定秒针各组成部分在屏幕上的相对位置 for ( (5) ) ( obs[i][1] = Math.sin(sec) * (44 - (i-1)*11) -16; if (document.layers)obs[i][1]+=10; obs[i][2] =-Math.cos(sec) * (44-(i-1)*11)-27; } //设定分针各组成部分在屏幕上的相对位置 for (i=6;i<10;i++) { obs[i][1]= Math.sin(min) * (40-(i-6)*10)-16; if (document.layers)obs[i][l]+=10; obs[i][2] = Math.cos(min) * (40 - (i-6)*10) -27; } //设定时针各组成部分在屏幕上的相对位置 for (i=10;i<13;i++) { obs[i][1] = Math.sin(hr) * (37 - (i- 10)*11)-16; if (document.layers)obs[i][1]+=10; ohs[i][2] =-Math.cos(hr) * (37- (i-10)*11)-27; }}function setNum(){//设置并显示挂钟上的数字cl (0, -67, -65);cl (1,10,-51);cl (2, 28, -33);cl (3, 35,-8);cl (4, 28, 17);cl (5, 10, 35);cl (6, -15, 42);cl (7, -40, 35);cl (8, -58, 17);cl (9, -65, -8);cl (10, -58, -33);cl (11, -40, -51);c1(12, -16, -56);}</script>
参考答案:
解析:new Array(60) (2)document. layers (3)obs[i][1]+pX (4)time. getSeconds() (5)i=1:i<6:i++本题考查在HTML文本中嵌入JavaScript脚本,题目要求在网页正中靠上显示一个固定的时钟。下面我们来具体分析程序。 第(1)空很明显是给变量rads赋一个值,从后面的程序中不难发现,rads是一个数组,那么在这里应该是用关键字new来动态分配一个数组空间,这个数组是用来记录挂钟的外边缘上的60个刻度的,那么这个数组的长度应该为60,因此答案为“new Array(60)"。 第(2)空是条件判断语句的条件,此条件判断语句的作用在程序注释中已经给出,是检验是否是NetScape4.x,由后面的程序中不难推断出此空答案为“document.layers"。 第(3)空在函数runClock()中,这个函数的作用是求秒针、分针、时针各组成部分在屏幕上的实际位置,这里面用一个循环来求得,而从后面的程序不难看出obs[i][0].left中存放的是当前时针的下坐标位置,因此答案为“obs[i][1]+pX”。 第(4)空是在函数timer()中,这个函数的作用从注释中可以知道,是获取系统当前时间,那么要用到time对象的getSeconds()函数,因此答案为“time.getSeconds()”。 第(5)空是循环的判断条件,此循环的作用是设定秒针各组成部分在屏幕上的相对位置。从后面设置分针和时针的循环中,不难推断出秒针各组成部分在屏幕上的相对位置存放在二维数组obs的前几行,且循环变量i应该是从1~6,因此此空答案为“i=1;i<6;i++”。