javascript学习随笔(编写浏览器脚本 Navigator Scripting )

2019-06-03 03:36:08刘景俊

事件 何时发生 事件处理程序
blur 用户将input focus从form元素上移去 onBlur
click 用户在form元素或连接上接动鼠标 onClick
change 用户改变了文本,文本区或选择元素的值 onChange
focus 用户把input focus赋给form元素 onFocus
load 用户把页装入Navigato onLoad
mouseover 用户把鼠标光标从link或anchor上移过 onMouseOve
select 用户选择了form元素的输入域 onSelect
submit 用户提交了一个form onSubmit
unload 用户退出此页 onUnload



例4 有一个form和一个event handler属性的脚本

 

<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function compute(form) {
 if (confirm("Are you sure?"))
  form.result.value=eval(form.expr.value)
 else
  alert("Please come back again")
}
</SCRIPT>
</HEAD>

<BODY>
<FORM>
Enter an expression:
<INPUT TYPE="text" NAME="expr" SIZE=15>
<INPUT TYPE="button" VALUE="Calculate" ONCLICK="compute(this.form)">
<BR>
Result:
<INPUT TYPE="text" NAME="expr" SIZE=15>
<BR>
</FORM>
</BODY>

例4中的页面显示


 

技巧与技术

本节介绍几种有用的编写脚本的技术

更新页(Updating Pages)

在Navigator上JavaScript是按从页的顶部到下的顺序生成结果. 一旦有些东西被重新设计(format),你只能靠重新装载此页的办法来改变,目前,你只能更新整 个页, 而不能只更新某一部分. 但是你可以单独更新frame中的"sub-window".

打印

目前, 还不能把用JavaScript产生的输出打印出来. 例如,若你的页上有如下内容,

<P>This is some text
<SCRIPT>document.write("<P>And some generated text")</SCRIPT>

当打印时,你只会打出"This is some text", 即使你能在屏幕上看到两行.

使用引号

一定要区分双引号和单引号,因为在HTML中事件处理程序必须用双引号 括起来,参数用单引号,例如:

<FORM NAME="myform">
<INPUT TYPE="button" NAME="button1" VALUE="Open Sesame!"
onClick="window.open('stmtsov.html', 'newWin','toolbar=no,directories=no')">
</FORM>

另外,你可以用前置反斜线()对引号进行转义.

定义函数

在HTML页的HEAD部分定义全部函数是一个好习惯.这样,在显示任何内容之前, 所有函数均已定义.否则在页还在装载时,用户可能做一些事情触发事件处理程序, 调用了未定义函数,将导致错误.