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程序设计有所帮助。