JavaScript基本对象

2019-06-03 09:36:17王冬梅

图 2 


图 3 

这个功能当你在不同的环境里运行不同的代码时非常有用,但是当你要在两种环境里运行同样的代码时怎么办呢?当然有比拷贝按钮代码更好的方法,你可以在右边的下拉列表中选择最下面的Common JavaScript来为两种环境同时编写代码(如图3)。 

在本例中,选择“Common JavaScript”。

在按钮脚本中,输入提示用户CreatedBy域值的代码。如果你看过前一篇文章,你就知道可以用点来分隔JavaScript里的各个层级元素。你的按钮脚本应该如下所示: 



alert(document.forms[0].CreatedBy.value);


需要注意的是,JavaScript区分大小写。这个规则不只对JavaScript元素(文档、表单等)有效(首字母小写),对域的名字同样有效。你在域中用的什么大小写效果,在代码中必须如实反映。在浏览器中试验一下按钮的功能[Design>Preview in Web Browser>Internet Explorer(或者你自己的浏览器)]。如果你使用Domino R6的设计器(Designer),你可以在Notes客户端中进行试验(Design>Preview in Notes)。 


图 4 

如果你在用一个本地数据库进行试验(对应的是在服务器上),在浏览器中你看到的用户名将是“Anonymous”,而不是你的名字,然而在Notes客户端中却是你的名字。原因是当你用Web页面的方式访问本地数据库时,你没有登录到服务器,浏览器不知道你是谁。但是在Notes中,不论是本地还是服务器,你必须登录才能使用系统。这就是两种客户端之间微妙的差别。 

另一个区别是在Web上没有计算域,但并不意味着你不能在你的表单里加入计算域。你可以加入计算域,计算值将会在Web页中显示,除非域是隐藏的。关键是即使域就在那里显示,而HTML通常的处理是没有定义域。如果你把CreatedBy域改成计算域而不是可编辑的,在重新测试时你就会明白我所说的意思,你会得到和图4类似的提示信息。 

但是当你在Notes客户端(R6)里运行时,即使是计算域也没有任何错误。坦白地说,我还没有对这个功能是好还是坏下结论,但那就是我们所得到的结果。 

这里产生的错误非常重要,你要开始理解JavaScript里产生的错误,因为它对你的代码调试有很大的用处。那么当它提示你“document.forms.0.CreatedBy.value”为null值或不是对象时,意味着没有得到你想要的数据。 

当你返回到浏览器里,在背景上单击右键,选择“查看源文件”时,你会看到隐藏在Web页面下的HTML代码。你简单浏览代码时,会看到对按钮和计算域的引用,如下所示: 



<input type="button" onclick="alert(document.forms[0].CreatedBy.value);" value="Get editable field value">