JavaScript实现在页面间传值的方法
本文实例讲述了JavaScript实现在页面间传值的方法。分享给大家供大家参考。具体如下:
问题如下:
在a.html页面中,<form>的onsubmit事件调用一个方法foo(),打开b.html页面的同时给b.html传递参数。方法foo()中需要传递变量参数到b.html页面,在b.html页面接受参数值,但不能使用服务器端技术。
解决代码如下:
a.html页面如下:
<html>
<head>
<title>demo</title>
<metaname="Author"content="xugang"/>
<scripttype="text/javascript">
functionfoo(){
vara="abc";//a为变量值
varstr="b.html?id="+a+";";
//alert(document.frm.action);
//方案一(无效)
//document.frm.action=str;
//方案二(无效)
//window.location.href=str;
//方案三(有效)
window.location.replace(str);
returnfalse;
}
</script>
</head>
<body>
<FORMname="frm"method="get"
onsubmit="returnfoo()">
<INPUTTYPE="SUBMIT"/>
</FORM>
</body>
</html>
注意:必须b.html页面事先存在即可。
b.html获得参数值的代码如下:
b.html部分代码
vargetQueryString=function(name){
varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)");
varr=window.location.search.substr(1).match(reg);
if(r!=null)returnr[2];return"";
}
补充:
myjs.js代码:
functionfoo(){
varstr="abc";
//document.forms[0].hid.value=str;
varfrm=window.event.srcElement;
frm.hid.value=str;
returntrue;
}
a.html代码:
<html> <head> <title>demo</title> <metaname="Author"content="xugang"/> <scriptsrc="myjs.js"></script> </head> <body> <FORMname="frm"METHOD="get"ACTION="b.html" onsubmit="returnfoo()"> <INPUTTYPE="hidden"id="hid"name="hid"> <INPUTTYPE="submit"value="提交"> </FORM> </body> </html>
注意:给b.html页面传值时,b.html页面必须事先已存在!
b.html代码:
<HTML> <HEAD> <TITLE>NewDocument</TITLE> </HEAD> <BODY> <SCRIPTLANGUAGE="JavaScript"> document.write(decodeURIComponent(location.search.substr(3))); </SCRIPT> </BODY> </HTML>
希望本文所述对大家的javascript程序设计有所帮助。