js实现页⾯跳转并传值
⼀:跳转到新页⾯,并且是在新窗⼝中打开时:
function gogogo()
{
//do
window.open("test2.html");
}
⼆:就在本页⾯窗⼝中跳转:
function totest2()
{
window.location.assign( "test2.html");
}
如何在页⾯跳转的时候进⾏值的传递,当使⽤window.open()打开新页⾯时,浏览器会认为这两个窗⼝之间有⼀种打开与被打开的关系,所以在被打开的新窗⼝中在当前窗⼝的window对象中有⼀个window.opener 属性,这个值⾥⾯放着打开窗⼝的引⽤,所以可以获得这个值,进⽽引⽤上⼀页⾯内的对象的值,⽰例如下:
<html>
<head>
<title>test1</title>
<script type="text/javascript">
function totest2()
{
window.open("test2.html");
}
</script>
</head>
<body>
js assign<label id="label1">page test1</label>
<br><br>
<input type="text" id="tx1">
<input type="button" id="bt2" value="to test2" onclick="totest2()">
</body>
</html>
<html>
<head>
<title>test2</title>
<script type="text/javascript">
function getvalue()
{
var pare=window.opener;
if(pare!=null)
{
var what=ElementById("tx1");
if(what!=null)
{
alert(what.value);
}
}
}
</script>
</head>
<body>
<label id="label1">page test2</label>
<br><br>
<input type="button" onclick="getvalue()" value="get test1 page value">
</body>
</html>
这两个页⾯,可以从后⼀个页⾯中获得前⼀个页⾯中的值,但是我感觉好像不⼤实⽤。。。。。。
优点:取值⽅便.只要window.opener指向⽗窗⼝,就可以访问所有对象.
不仅可以访问值,还可以访问⽗窗⼝的⽅法.值长度⽆限制.
缺点:两窗⼝要存在着关系.就是利⽤window.open打开的窗⼝.不能跨域.
下⾯看看另⼀种⽅法,使⽤URL附加字段在页⾯跳转间传值,前⾯⽤XMLHttpRequest时,⽤到过这种⽅式。简单原始的⽰例如下:
<html>
<head>
<title>test3</title>
<script type="text/javascript">
function totest2()
{
var ElementById("tx1").value;
var ElementById("tx2").value;
var myurl="test4.html"+"?"+"parm1="+parm1+"&parm2="+parm2;
window.location.assign(myurl);
}
</script>
</head>
<body>
<label id="label1">page test3</label>
<br><br>
<input type="text" id="tx1">
<input type="text" id="tx2">
<input type="button" id="bt2" value="to test2" onclick="totest2()">
</body>
</html>
<html>
<head>
<title>test1</title>
<script type="text/javascript">
function getparm1()
{
var url=location.href;
var tmp1=url.split("?")[1];
var tmp2=tmp1.split("&")[0];
var tmp3=tmp2.split("=")[1];
var parm1=tmp3;
alert(parm1);
}
function getparm2()
{
var url=location.href;
var tmp1=url.split("?")[1];
var tmp2=tmp1.split("&")[1];
var tmp3=tmp2.split("=")[1];
var parm2=tmp3;
alert(parm2);
}
</script>
</head>
<body>
<label id="label1">page test4</label>
<br><br>
<input type="button" id="bt1" value="get parm1" onclick="getparm1()">
<br><br>
<input type="button" id="bt2" value="get parm1" onclick="getparm2()">
</body>
</html>
最后⼀种页⾯间传值的⽅法就是COOKIE共享,这个⽐较容易理解,由⼀个页⾯在客户端机器放置⼀个COOKIE⽂件,下⼀个页⾯访问的时候,直接读取这⾥⾯的值就OK了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论