不唐突的JavaScript的七条准则
英文原文:The seven rules of Unobtrusive JavaScript
原文作者:Chris Heilmann
经过多年的开发、教学和编写不唐突的JavaScript, 我发现了下面的一些准则。我希望它们可以帮助你对“为什么这样设计和执行JavaScript比较好”有一点理解。这些规则曾经帮助我更快地交付产品,并且产品的质量更高,也更容易维护。
1.不要做任何假设
(JavaScript是一个不可靠的助手)
可能不唐突的JavaScript 的最重要的一个特性就是——你要停止任何假设:
* 不要假设JavaScript是可用的,你最好认为它很有可能是不可用的,而不是直接依赖于它。
* 在你经过测试确认一些方法和属性可以使用之前,不要假设浏览器支持它们。
* 不要假设HTML代码如你想象的那样正确,每次都要进行检查,并且当其不可用的时候就什么也不要做。
* 让JavaScript的功能独立于输入设备
* 要记住其他的脚本可能会影响你的JavaScript的功能,所以要保证你的脚本的作用域尽可能地安全。
在开始设计你的脚本之前,要考虑的第一件事情就是检查一下你要为其编写脚本的HTML代码,看看有什么东西可以帮助你达到目的。
2.找出钩子和节点关系
(HTML是脚本的基石)
在开始编写脚本之前,要先看一下你要为之编写JavaScript的HTML。如果HTML是未经组织的或者未知的,那么你几乎不可能有一个好的
脚本编写方案——很可能就会出现下面的情况:要么是会用JavaScript创建太多标记,要么就是应用太依赖于JavaScript。
在HTML中有一些东西需要考虑,那就是钩子和节点关系。
<1>.HTML 钩子
HTML最初的和最重要的钩子就是ID,而且ID可以通过最快的DOM方法——getElementById
访问到。如果在一个有效的HTML文档中所有的ID都是独一无二的话(在IE中关于name 和 ID
有一个bug,不过有些好的类库解决了这个问题),使用ID就是安全可靠的,并且易于测试。
其他一些钩子就是是HTML元素和CSS类,HTML元素可以通过getElementsByTagName方法访问,而在多数浏览器中都还不能
通过原生的DOM方法来访问CSS类。不过,有很多外部类库提供了可以访问CSS类名(类似于 getElementsByClassName)
的方法。
<2>.HTML 节点关系
关于HTML的另外比较有意思的一点就是标记之间的关系,思考下面的问题:
* 要怎样才可以最容易地
相关文档:
function function xx(){...} 定义函数
isNumeric 判断是否是数字
innerHTML xx=对象.innerHTML 输入某对象标签中的html源代码
innerText divid.innerText=xx 将以div定位以id命名的对象值设为XX
locati ......
m=a.getMonth(); //获取月份值
d=a.getDate(); //获取日期值
d1=a.getDay(); //获取当前星期值
h=a.getHours(); //获取当前小时数
m1=a.getMinutes(); //获取当前分钟数
s=a.getSeconds(); //获取当前秒钟数
对象.style.fontSize="文字大小";
单位:mm/cm/in英寸/pc帕/pt点/px象素/em文字高
1in=1.25cm
1pc=12pt
......
JavaScript Date 对象与函数
目录
JavaScript_Date对象说明
Date对象构造函数
Date函数使用语法
JavaScript_Date函数按功能分类
日期获取类函数
日期设置类函数
日期打印类函数
日期解析类函数
JavaScript_Date函数按照字母分类
JavaScript_Date对象说明
Date中文为"日期"的意思,Date继承自Object对象, ......
报表展现在web页面以后,有时需要获取某单元格的值。润乾报表中可以通过在jsp页面中设定JavaScript函数来实现这个功能。下面就通过一个下例子简单介绍一下如何通过JavaScript函数获取Web报表单元格的值。
首先,将发布报表的jsp页面中的报表标签<report:html>放在一个<table>标签中,如下图
其中<report:h ......
click() 对象.click() 使对象被点击。
closed 对象.closed 对象窗口是否已关闭true/false
clearTimeout(对象) 清除已设置的setTimeout对象
clearInterval(对象) 清除已设置的setInterval对象
confirm("提示信息") 弹出确认框,确 ......