javascript页面跳转和传值

JavaScript011

javascript页面跳转和传值,第1张

你没取到 x 的值啊

<head runat="server">

<title></title>

<script type="text/javascript" src="http://include.manmango.com/js/jquery-1.6.1.js"></script>

<script type="text/javascript">

$(document).ready(function () {

var c = 2

var timeVal = setInterval(function () {

$("#timer").val(c)

if(c == 0){

clearTimeout(timeVal)

window.location.href = "Default2.aspx?user_id=" + $("#Label1").text() //向页面Default2传递值

}

c--

}, 1000)

})

</script>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:TextBox ID="timer" runat="server"></asp:TextBox>

<asp:Label ID="Label1" runat="server" >5</asp:Label>

</div>

</form>

</body>

</html>

有时候,为了隐藏页面之间传递的参数,不会用直接路由加参数的形式去跳转,而是利用post方法,

我们都知道post方法传递参数时,参数并不现实在url里面

post传参并跳转

1、escape对ansi码0-255以外的字符进行编码输出%u****格式即unicode值,escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20"

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

2、encodeURI类似escape,用于地址栏编码

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,,=,?,@,_,~,0-9,a-z,A-Z

3、encodeURIComponent用于地址栏编码。将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。它是将中文、韩文等特殊字符转换成utf-8格式的url编码,如果你的页面编码是gb2312的话,服务器端接收的将是乱码.

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

所以js使用数据时可以使用escape,对于地址栏数据,最好用encodeURIComponent进行编码

例如:

前台jsp中js:

var str="method=submit2&type="+type+"&typep="+typep

str=encodeURI(str)

var tempAction='ImageServlet.do?+str

document.myform.action=tempAction;

后台java代码:

String typep=HttpServletRequest.getSession().getAttribute("typep")//不同的框架不同得到参数方式。

typep= java.net.URLDecoder.decode(typep,"UTF-8")//Decoder.decode()解码