每日记载内容总结12

1.window.onload()的用法以及如何处理onload冲突

用法:

(1)最简单的调用 在html里面的body标签里面 <body onload="func()"></body>

(2)用js语句调用 function test(){ }  window.onload=test();

(3)同时调用多个函数 如在body里面<body onload="func();test();..."></body>

(4)也可以在js里面  function test1(){} function test2(){}  window.onload=function (){test1();test2();}

处理onload冲突:

window.onload的意思是当页面加载完毕的时候执行。通常把JS脚本放在任意的位置,通过window.onload来执行脚本。但是当同 一个页面里出现了两个window.onload=function(){};,就会发现先读的脚本失效了。通常一个页面是只能执行一个 window.onload的,这个时候可以通过下面的方法解决:

    用window.attachEvent和window.addEventListener。

    当某一事件被触发时需要执行某个函数,在IE下可用attachEvent,在FF下则要用addEventListener。

    attachEvent()有两个参数,第一个是事件名称,第二个是需执行的函数;

    addEventListener()有三个参数,第一个是事件名称,但与IE事件不同的是,事件不带"on",比如"onsubmit"在这里应为"submit",第二个是需执行的函数,第三个参数为布尔值;

if (document.all){//document.all用来测试是否为ie,是则返回true

window.attachEvent('onload',函数名)//IE中

}

else{

window.addEventListener('load',函数名,false);//firefox , chrome

}

原文链接 :http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=8342

2.url的拼写

用普通方法:<a href="catalog/companydetail.do?company.companyId=<s:property value="company.companyId" />&&product.productId=<s:property value="product.productId" />"></a>
用s:url,用s:param传参数:<a href="<s:url namespace="/sell" action="inquirycart"><s:param name="productId" value="productId"/></s:url>"></a>
用s:url,用普通方法传参数 <a href="<s:url namespace="/business" action="productcheck?productBean.productId=%{productId}"/>"></a>
用js传参数  window.location.href = "search.do?gosearch=<s:property value='gosearch'/>&&categoryIdHeader=<s:property value='categoryIdHeader'/>&&currentPage=" + pageNum;
用jquery提交form表单 $("form").attr("action","productupdate.do");$("form").submit(); 如果form不止一个,需要注明换form为#id 传参数的话可用("action","insert.do?method=regist")
用js提交form表单  获取form var formTest = document.getElementById(); formTest.action="insert.do?method=regist" ; formTest.submit();
用ajax提交以及传参数:$.ajax({
                    type: "POST",
                    url: "<s:url namespace='/sell' action='removeInqueryCartProduct'/>",
                    data:{ "productIdIndex" : productId},
                    success: function(){
                    }        
                });

3.一些搜集的js知识:

str.substring(0,10)截取前10个字符 从0开始,10-0个字符  str.substring(str.length()-4,str.length()-1)截取倒数2 3 4个字符
arr.indexOf(arr[a])   返回 arr[a]在数组中的序号
数组indexOf和lastIndexOf,接受2个参数,第一个表示要查找的项,第二个可选表示从某个位置开始,lastIndexOf从后向前查,没有查到返回-1
MATH函数,ceil向上舍入,floor向下舍入,round四舍五入,random随机数,返回某个区间的随机数= Math.floor(Math.random*可能数的总数+最小值)
基本数据类型按值传递数据,而对象类型按引用类型传递数据
var name = 1;
var name2 = name;
alert(name2);//1
 
var name = "n1";
var name.age= "22";
alert(name.age);//undefined
 
var o = new Object();
var o1 = o;
o.name = "a";
alert(o1.name);//a

创建对象实例方法。1.new后面跟构造函数 var a = new object(); 2.使用对象字面量 var a={};

访问对象的属性可以用点表示法,也可以用方括号。方括号的主要优点就是可以通过变量来访问属性,保留字和关键字都可以用方括号的方法来引用.
除非必须使用变量来访问数据,建议使用点表示法。

创建数组,var a = new Array(3);//创建长度为3的数组,var b = new Array("a");创建内容为a的数组,即如果参数为数字则创建该长度的数组.

4.在js中createElement的注意事项:

针对非 input 元素,各浏览器中,既可以把对元素属性的改变写在显示元素(insertBefore 或 appendChild)之前,也可以在其后。
针对 input 元素,为了兼容 IE,type 属性写在显示元素(insertBefore 或 appendChild)之前,其它属性写在其后
var board = document.getElementById("board");
var e = document.createElement("input");
e.type = "radio"; //紧接着上一行写
var obj = board.appendChild(e);
obj.checked = true;

5.js里面获取session,application里面的内容
var userId="<s:property value='#session.user.userId'/>";
var modifyImageLink="<s:property value='#application["modify_image_link"]'/>";

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public void getsmsconfig(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
        SmsConfig smsConfig = smsService.getSmsConfig();
        request.setAttribute("smsconfig", smsConfig);
        request.getRequestDispatcher("view/smsconfig/edit.jsp").forward(request,response);
}

复习session :

import javax.servlet.http.HttpSession; //需要引入servlet-api.jar 

HttpSession session = request.getSession(); 
session.setAttribute("变量名", 值对象); 
session.getAttribute("变量名"); //此时取出来的是Object, 一般需要强转 
session.removeAttribute("变量名"); 
session.invalidate(); //删除所有session中保存的键 

HttpSession是不能new出来的,
要从HttpServletRequest中调用getSession方法得到.
一般也就是request.getSession();

原文地址:https://www.cnblogs.com/cuiyf/p/3119863.html