本文实例讲述了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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/19559
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我