JavaScript编码规范
JavaScript 编程语言作为最流行的客户端脚本语言,深受Web开发人员爱戴。JavaScript语法灵活,简单易懂,对代码的格式的要求也相对松散。也正因为如此,JavaScript 的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。为了此种恶梦不再发生,IBM高级软件工程师王丹丹对JavaScript 编程语言的编码规范进行了总结,现转载于此,供大家学习。全文如下:
对于熟悉C/C++或Java语言的工程师来说,JavaScript显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中不必要的麻烦。而 JavaScript代码是直接发送给客户浏览器的,直接与客户见面,编码的质量更应该受到关注。
本文浅谈JavaScript编程中关于编码规范的问题,分析其中缘由。希望引起更多Web 开发人员对JavaScript编码规范问题的关注和对软件产品质量问题的重视。
js实现html表格增减
<script>
function addRow(){
// 插入一行
myNewRow = document.all.myTable.insertRow();
var lenRow = document.all.myTable.rows.length; // 计算总行数
if(lenRow > 1){
var point = myNewRow.rowIndex; // 计算当前行位置
var lenCol = document.all.myTable.rows(0).cells.length; // 计算每行有几列
// 插入lenCol个td
for (i=0; i < lenCol; i++) {
document.all.myTable.rows(point).insertCell();
document.all.myTable.rows(point).cells(i).innerHTML = parseFloat(document.all.myTable.rows(point-1).cells(i).innerHTML) + lenCol;
}
}else if(lenRow == 1){
// 原来table是0行,初始化一行
for(i = 0; i < 10; i++){
document.all.myTable.rows(0).insertCell();
document.all.myTable.rows(0).cells(i).innerHTML = i;
}
}
}
function delRow(){
document.all.myTable.deleteRow();
}
</script>
<a href="javascript: addRow()">增加一行</a>
<a href="javascript: delRow()">减去一行</a>
<table name=myTable border=1 id=myTable>
</table>
常用的几个JS效果
1. 将彻底屏蔽鼠标右键oncontextmenu="window.event.returnValue=false"
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. 取消选取、防止复制
<body onselectstart="return false">
3. 不准粘贴onpaste="return false"
4. 防止复制oncopy="return false" oncut="return false"
5. IE地址栏前换成自己的图标<link rel="Shortcut Icon" href="favicon.ico">
6. 可以在收藏夹中显示出你的图标<link rel="Bookmark" href="favicon.ico">
7. 关闭输入法<input style="ime-mode:disabled">
8. 永远都会带着框架
<script language="JavaScript"><!
if (window == top)top.location.href = "frames.htm" //frames.htm为框架网页
// ></script>
9. 防止被人frame
<SCRIPT LANGUAGE=JAVASCRIPT><!
if (top.location != self.location)top.location=self.location
// ></SCRIPT>
10. 网页将不能被另存为
<noscript><iframe src=*.html></iframe></noscript>
11. 查看网页源代码
<input type=button value=查看网页源代码
onclick="window.location = "view-source:"+ "http://www.pconline.com.cn"">
12.删除时确认
<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp?&areyou=删除&page=1"">删除</a>
JS显示时间日期与星期
<script language=javascript>
today=new Date();
function date(){
this.length=date.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=date.arguments }
var d=new date("星期日","星期一","星期二","星期三","星期四","星期五","星期六";
document.write(
"<font color=##000000 style=’font-size:9pt;font-family: 宋体’> ",
today.getYear(),"年",today.getMonth()+1,"月",today.getDate(),"日",
d[today.getDay()+1],"</font>" );
</script>
JavaScript检测表单内容格式
function chk(obj, chktype){
switch(chktype){
case 1://判断是否为空
if(obj.value == ""){
alert("请输入必要的字符。");
obj.focus();
obj.onselect();
}
break;
case 2://判断是否为数字
var reg = /^d+(.d+)?$/;
if(!reg.test(obj.value)){
alert("请输入数字。");
obj.focus();
obj.select();
}
break;
case 3://判断是否为用户名格式
var reg = /^[^d-_][w-]*[^-_]$/;
if(!reg.test(obj.value)){
alert("请输入正确的格式。");
obj.focus();
obj.select();
}
break;
case 4://判断是否为汉字
var reg = /^[u4E00-u9FA5]*$/;
if(!reg.test(obj.value)){
alert("你输入的不全是汉字。");
obj.focus();
obj.select();
}
break;
case 5://判断是否为邮箱格式
var reg = /^[^d-_][w-]*[^-_]@[^-][a-zA-Zd-]*[^-](.[^-][a-zA-Zd-]*[^-])*.[a-zA-Z]{3}(.[a-zA-Z]{2})?$/;
if(!reg.test(obj.value)){
alert("你输入正确的邮箱格式。");
obj.focus();
obj.select();
}
break;
case 6://判断是否为合法日期格式
var reg = /^(19|20)dd-(0|1)d-(0|1|2|3)d$/;
if(!reg.test(obj.value)){
alert("你输入正确的日期格式。");
obj.focus();
obj.select();
}
break;
}
}
Javascript的document对象
对象属性
document.title //设置文档标题等价于HTML的<title>标签
document.bgColor //设置页面背景色
document.fgColor //设置前景色(文本颜色)
document.linkColor //未点击过的链接颜色
document.alinkColor //激活链接(焦点在此链接上)的颜色
document.vlinkColor //已点击过的链接颜色
document.URL //设置URL属性从而在同一窗口打开另一网页
document.fileCreatedDate //文件建立日期,只读属性
document.fileModifiedDate //文件修改日期,只读属性
document.fileSize //文件大小,只读属性
document.cookie //设置和读出cookie
document.charset //设置字符集 简体中文:gb2312
document.fileSize //文件大小,只读属性
document.cookie //设置和读出cookie
常用对象方法
document.write() //动态向页面写入内容
document.createElement(Tag) //创建一个html标签对象
document.getElementById(ID) //获得指定ID值的对象
document.getElementsByName(Name) //获得指定Name值的对象
document.body.appendChild(oTag)
body-主体子对象
document.body //指定文档主体的开始和结束等价于<body></body>
document.body.bgColor //设置或获取对象后面的背景颜色
document.body.link //未点击过的链接颜色
document.body.alink //激活链接(焦点在此链接上)的颜色
document.body.vlink //已点击过的链接颜色
document.body.text //文本色
document.body.innerText //设置<body>...</body>之间的文本
document.body.innerHTML //设置<body>...</body>之间的HTML代码
document.body.topMargin //页面上边距
document.body.leftMargin //页面左边距
document.body.rightMargin //页面右边距
document.body.bottomMargin //页面下边距
document.body.background //背景图片
document.body.appendChild(oTag) //动态生成一个HTML对象
常用对象事件
document.body.onclick="func()" //鼠标指针单击对象是触发
document.body.onmouseover="func()" //鼠标指针移到对象时触发
document.body.onmouseout="func()" //鼠标指针移出对象时触发
location-位置子对象
document.location.hash // #号后的部分
document.location.host // 域名+端口号
document.location.hostname // 域名
document.location.href // 完整URL
document.location.pathname // 目录部分
document.location.port // 端口号
document.location.protocol // 网络协议(http:)
document.location.search // ?号后的部分
常用对象事件
documeny.location.reload() //刷新网页
document.location.reload(URL) //打开新的网页
document.location.assign(URL) //打开新的网页
document.location.replace(URL) //打开新的网页
documeny.location.reload() //刷新网页
document.location.reload(URL) //打开新的网页
document.location.assign(URL) //打开新的网页
document.location.replace(URL) //打开新的网页
selection-选区子对象
document.selection
images集合(页面中的图象)
a)通过集合引用
document.images //对应页面上的<img>标签
document.images.length //对应页面上<img>标签的个数
document.images[0] //第1个<img>标签
document.images[i] //第i-1个<img>标签
b)通过name属性直接引用
<img name="oImage">
document.images.oImage //document.images.name属性
c)引用图片的src属性
document.images.oImage.src //document.images.name属性.src
d)创建一个图象
var oImage
oImage = new Image()
document.images.oImage.src="1.jpg"
同时在页面上建立一个<img>标签与之对应就可以显示
示例代码(动态创建图象):
<html>
<img name=oImage>
<script language="javascript">
var oImage
oImage = new Image()
document.images.oImage.src="1.jpg"
</script>
</html>
<html>
<script language="javascript">
oImage=document.caeateElement("IMG")
oImage.src="1.jpg"
document.body.appendChild(oImage)
</script>
</html>
forms集合(页面中的表单)
a)通过集合引用
document.forms //对应页面上的<form>标签
document.forms.length //对应页面上<form>标签的个数
document.forms[0] //第1个<form>标签
document.forms[i] //第i-1个<form>标签
document.forms[i].length //第i-1个<form>中的控件数
document.forms[i].elements[j] //第i-1个<form>中第j-1个控件
b)通过标签name属性直接引用
<form name="Myform"><input name="myctrl"></form>
document.Myform.myctrl //document.表单名.控件名
c)访问表单的属性
document.forms[i].name //对应<form name>属性
document.forms[i].action //对应<form action>属性
document.forms[i].encoding //对应<form enctype>属性
document.forms[i].target //对应<form target>属性
document.forms[i].appendChild(oTag) //动态插入一个控件
示例代码(form):
<html>
<!--Text控件相关Script-->
<form name="Myform">
<input type="text" name="oText">
<input type="password" name="oPswd">
<form>
<script language="javascript">
//获取文本密码框的值
document.write(document.Myform.oText.value)
document.write(document.Myform.oPswd.value)
</script>
</html>
示例代码(checkbox):
<html>
<!--checkbox,radio控件相关script-->
<form name="Myform">
<input type="checkbox" name="chk" value="1">1
<input type="checkbox" name="chk" value="2">2
</form>
<script language="javascript">
function fun(){
//遍历checkbox控件的值并判断是否选中
var length
length=document.forms[0].chk.length
for(i=0;i<length;i++){
v=document.forms[0].chk[i].value
b=document.forms[0].chk[i].checked
if(b)
alert(v=v+"被选中")
else
alert(v=v+"未选中")
}
}
</script>
<a href=# onclick="fun()">ddd</a>
</html>
示例代码(Select):
<html>
<!--Select控件相关Script-->
<form name="Myform">
<select name="oSelect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>
<script language="javascript">
//遍历select控件的option项
var length
length=document.Myform.oSelect.length
for(i=0;i<length;i++)
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//遍历option项并且判断某个option是否被选中
for(i=0;i<document.Myform.oSelect.length;i++){
if(document.Myform.oSelect[i].selected!=true)
document.write(document.Myform.oSelect[i].value)
else
document.write("<font color=red>"+document.Myform.oSelect[i].value+"</font>")
}
</script>
<script language="javascript">
//根据SelectedIndex打印出选中的option
//(0到document.Myform.oSelect.length-1)
i=document.Myform.oSelect.selectedIndex
document.write(document.Myform.oSelect[i].value)
</script>
<script language="javascript">
//动态增加select控件的option项
var oOption = document.createElement("OPTION");
oOption.text="4";
oOption.value="4";
document.Myform.oSelect.add(oOption);
</script>
<html>
Div集合(页面中的层)
<Div id="oDiv">Text</Div>
document.all.oDiv //引用图层oDiv
document.all.oDiv.style.display="" //图层设置为可视
document.all.oDiv.style.display="none" //图层设置为隐藏
document.getElementId("oDiv") //通过getElementId引用对象
document.getElementId("oDiv").
document.getElementId("oDiv").display="none"
/*document.all表示document中所有对象的集合
只有ie支持此属性,因此也用来判断浏览器的种类*/
图层对象的4个属性
document.getElementById("ID").innerText //动态输出文本
document.getElementById("ID").innerHTML //动态输出HTML
document.getElementById("ID").outerText //同innerText
document.getElementById("ID").outerHTML //同innerHTML
示例代码:
<html>
<script language="javascript">
function change(){
document.all.oDiv.style.display="none"
}
</script>
<Div id="oDiv" onclick="change()">Text</Div>
</html>
<html>
<script language="javascript">
function changeText(){
document.getElementById("oDiv").innerText="NewText"
}
</script>
<Div id="oDiv" onmouseover="changeText()">Text</Div>
</html>
JavaScript实现全选所有复选框
本文介绍如何使用JavaScript实现全选所有复选框,全选复选框在实际应用得较多,例如批量删除、编辑等功能时玩玩会用到。
JavaScript代码:
<script language="JavaScript">
<!-- Begin
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field.checked = true;}
checkflag = "true";
return "Uncheck All"; }
else {
for (i = 0; i < field.length; i++) {
field.checked = false; }
checkflag = "false";
return "Check All"; }
}
// End -->
</script>
Html代码:
<form name=myform action="" method=post>
<table width="133">
<tr><td width="125">
<b>软件系数调查:<br></b> <br>
<input type=checkbox name=list value="1">软件的界面<br>
<input type=checkbox name=list value="2">特效很多<br>
<input type=checkbox name=list value="3">分类详细<br>
<input type=checkbox name=list value="4">完全免费<br>
<input type=checkbox name=list value="5">特效很实用<br>
<input type=checkbox name=list value="6">更新速度快<br>
<br>
<input type=button value=" 全部选定 " onClick="this.value="/check(this.form.list)"">
</td></tr>
</table>
</form>
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)