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