DOMINO WEB方式的JavaScript基本对象

ibm123 2004-03-11 10:11:11
JavaScript基本对象

亲密接触单选按钮、复选框和JavaScript的一些有趣的事情

我将以对象模型和一些常用对象开始,因为JavaScript里的一切都是从对象展开的。记住,本文不只是关于JavaScript的,它是关于Notes/Domino中的JavaScript的。

窗口
窗口是对象模型的顶端对象。通常来说,窗口就是你的浏览器。如果你的窗口里有帧结构,那么每个帧结构都依次是一个小窗口,包含在顶层窗口——浏览器中。我会在另一篇文章里谈帧结构,现在,我们来看浏览器里只有一个Web页面的情况。

窗口有它的属性,比如它的地址(也就是它的URL),浏览器底部的状态条上的文字等等;它也有方法,比如打开和关闭。通常来说,因为窗口在对象层次的顶层,JavaScript就假设Window已经存在了,你不必去刻意写上它,也就是说“window.location”和“location”的作用是相同的。

窗口里是Web页面,它的对象层次从文档(document)开始。你可以用Window.document来引用它,或者就是简单的document。每个窗口只有一个文档(document)。依据你的浏览器的不同,文档(document)有几个变化多样的选项。在MSIE中,document.all数组包含了文档(document)中所有的对象。在Netscape Navigator的某些版本中,你可以访问document.layers数组。每一种浏览器关于对象的解释都不一样,但是表单数组(forms array)在所有的浏览器中都是可以访问的。

理论上讲,每个文档(document)包含至少一个表单(form),但是可以包含多个。然而,在Notes中,除非明确写出用来完成特定功能的HTML代码(我从来没那么做过),通常只有一个表单。但是,因为可以有多个表单,所以你在引用表单时,还是得通过数组元素来引用表单,下标从0开始。不像LotusScript那样,用圆括号来括住下标数字,比如doc.CompanyName(0),在JavaScript中你通常会看到引用数组下标的数字是括在方括号中的。因此,你应该用下面的方式引用表单:



window.document.forms[0];


或者简写成:



document.forms[0];


严格来说,上面的方法并不是唯一引用表单的方式,下面都是引用表单的合法的表达式:



document.forms[0];

document.forms(0);

document.forms.0;


然而,你经常看到的还是带方括号的方式。注意,我在每行语句的末尾加了分号,这是在JavaScript中和公式语言的相似之处之一。你应该在每一条语句的末尾加上分号。和公式语言不同的是,在JavaScript中分号并不总是必需的。有些浏览器和其他浏览器比起来,它们可以运行没有分号的JavaScript语句,所以,尽管有时你可以不用加分号,但是你最好养成每一条语句都加分号的习惯。

当你接触到表单后,你就已经为访问你最关心的元素做好了准备。表单是域、按钮、文本、图像和其他元素的容器,你将在表单中用JavaScript来处理这些元素。

简单的几个元素
对于LotusScript,有件事值得一提:除了Rich-Text域外的元素,如文本、单选框、列表框、复选框等,你可以用几乎相同的代码取得它们的值。例如:如果有一个“Location”域,不论它是何种类型,你都可以用下面的LotusScript代码取得它的值:



fieldVals = doc.Location


或者这样:



fieldVals = doc.GetItemValue("Location")


在LotusScript中,域的类型对于你要取值(值数组)的代码并不重要。不幸的是,这对于JavaScript并不适用。在JavaScript中,不同类型的域除了显示选项(比如单选框、复选框或者文本)外,并不像在Notes里那样,它们是不同的类型的对象,每一个都要用不同的方式去引用。其实,那也不是绝对的,有些对象是相似的,但是引用过程并不像在LotusScript里那么流畅。你会发现,你将花费很多时间手动寻找你的代码中的域(名)错误来使它们正常运行,那看起来很糟糕。

你首先要知道的一点是:在JavaScript中,没有所谓的Rich-Text域,在HTML中更没有。Notes里提供了一个可以放在浏览器里的富文本Java(不是JavaScript)小程序,从而可以得到富文本的一些功能,但是你并不能用JavaScript来对它编程,而且它也不是一个真正的HTML对象类型。

更让Notes开发人员惊讶的是,在Web上还没有数字型或时间型的域。HTML的域都是文本型的。尽管你能用它们来收集数字信息,如数量或单价,而保存的数据依然是文本。为了像数字一样使用它,你必须把它转换成数字类型。我将在后面详细讲解它。现在,要意识到一切都是文本,就像你在Notes的@Prompt对话框里输入的信息一样。


...全文
140 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
rong1999 2004-04-29
  • 打赏
  • 举报
回复
谢谢
neeman 2004-04-01
  • 打赏
  • 举报
回复
对我正对JS迷糊的人就更有用了。
现在转B/S就摸不着北了。
longwu79 2004-03-31
  • 打赏
  • 举报
回复
http://www-900.ibm.com/developerWorks/cn/lotus/lo-jsobj/index.shtml#6
大家多上上IBM的网站,其实里面有很多好的东东的
davely 2004-03-31
  • 打赏
  • 举报
回复
对初学者很有用
benben134 2004-03-30
  • 打赏
  • 举报
回复
谢谢!我是新手,以后要多多指教!
sydongdu 2004-03-29
  • 打赏
  • 举报
回复
这个文档原来是提供给广大的javaScript社区的初学者的,尽管这个文档是为domino web开发人员特别准备的。但是我一直发布在javaScript板块上。得到了大家的很好的评价:
请参看如下URL:
http://expert.csdn.net/Expert/topic/2744/2744609.xml?temp=.912472

另外,我擅长domino开发的培训,是属于优秀的domino技术培训专家,如果你有培训安排,请你尽管联系我。我一般将培训的场地布置到你的电脑桌面上。
sydongdu 2004-03-29
  • 打赏
  • 举报
回复
顺便给一个更加详细的关于JavaScirptPDF文档吧:
http://www.askguoyu.com/oa/oaindex.nsf/traningC?openform

这个网站的访问入口:
http://www.askguoyu.com/oa/oaindex.nsf/index?
Intotherain1 2004-03-25
  • 打赏
  • 举报
回复
对从cs转bs的应该是很好的文档
不过我cs的不会 呵呵
ibm123 2004-03-24
  • 打赏
  • 举报
回复
有人好像不乐意我发这样的贴哦,不知道某些人是什么意思,打击我呀。出于好意,共享一些资料给新人。难道我错了吧。哎,看这世道。
daluoboequalto 2004-03-24
  • 打赏
  • 举报
回复
magazine上,好像是去年6月份的吧。
然后在ibm的站点上看见,在clpclub上看见。。。。

现在又在这里看见了升级版本了。呵呵
stupidfrog 2004-03-23
  • 打赏
  • 举报
回复
:)
typhoonhb 2004-03-23
  • 打赏
  • 举报
回复
谢谢了。刚接触lotus,收藏先!
realsid 2004-03-22
  • 打赏
  • 举报
回复
好!这样的人真好!加分!回帖的人可以给发帖人加分吗?
YuLimin 2004-03-22
  • 打赏
  • 举报
回复
这个啊,好象。。。。。。有点儿。。。。。。早见过了吧,而且在这里会少了很多东西的,比如图片。。。。。。。。。。
Acatxb 2004-03-22
  • 打赏
  • 举报
回复
多谢,珍藏
kenzo2004 2004-03-22
  • 打赏
  • 举报
回复
感谢阿...
继续努力^_^
herixin 2004-03-22
  • 打赏
  • 举报
回复
感谢l!!
对我太重要了
hongshiju 2004-03-20
  • 打赏
  • 举报
回复
good!
CrazyDeng 2004-03-19
  • 打赏
  • 举报
回复
学习ing
EANFS 2004-03-19
  • 打赏
  • 举报
回复
一个好人!
加载更多回复(10)

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧