原文地址:http://www.javascripttoolbox.com/bestpractices/

1.总是使用关键字_var_声明变量

javascript中的变量不是全局范围就是函数范围,使用关键字var声明变量是必不可少的。当声明一个变量时不管是全局变量还是函数级变量,都不应省略变量的前缀关键字var。下边的例子说明了如果不这样做可能存在的潜在问题。 没有使用关键字var声明变量产生的问题
var i = 0; // This is good - creates a global variable
function test() {
    for (i=0; i<10; i++) {
        alert("Hello World!");
    }
}
test();
alert(i); // The global variable i is now 10!

阅读全文......

在说明s:iterator标签的使用前,先了解下struts2中的Value Stack。这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进行升级的,因此webwork对于Value Stack的表述同样适用于struts2。在这里不描述Value Stack具体做什么,但有两点需要注意:
  1. 一个value stack本质上是一个List;
  2. 在栈中调用 [n] 将返回一个从位置n开始的子栈;
对于2举个例子说明。假定Value Stack包含了[model,action,others],那么
  1. [0] — 返回 [model,action,others];
  2. [1] — 返回 [action,others];
  3. [2] — 返回 [others];
现在将开始介绍 s:iterator 的一些使用。以下代码片段均在开发环境eclipse3.4 wtp、tomcat5.5、jdk5上使用struts2.1.6测试通过。

集合元素访问

阅读全文......

在实际的开发过程中遇到当调用javascript中window.close()方法时,IE会在页面关闭前询问用户是否要关闭的二次确认对话框。为了避免这个问题,需要在调用window对象的close方法前做一些处理 针对IE的不同版本,处理方式是不同的。因此在处理之前应先判断IE浏览器的版本。 浏览器及其版本的判断可以使用jQuery1.9版本之前的$.browser方法或者使用javascript检测浏览器版本中提到的方式检测,这里不在赘述直接给出相关代码。

IE7及其以上版本

if(isMinIE7||isMinIE8){ // IE7以上  
    window.open('','_top');  
    window.top.close();  
    return ;  
}  

IE6及其以下版本

if(isMinIE6){//IE6   
    window.opener=null;  
    window.close();  
    return ;  
}  

Chrome,Safari和Firefox

 window.close(); 

Notes:

针对FireFox浏览器时,除了使用window.close(),为了达到直接关节而无需提示的效果都需要在FireFox的地址栏中输入about:config,然后将dom.allow_script_to_close_windows改为true才能达到想要的效果。

阅读全文......

以下浏览器版本的判断方法参考了《JavaScript 高级程序设计》第八章。 总体上我们验证浏览器及其版本是通过浏览器的user-agent字符串来检测的。常见的有:
Safari: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
Chrome: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
IE: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Firefox:Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0

阅读全文......