通过 JavaScript 将变量从一个 html 页面传递到另一页面
Passing Variable through JavaScript from one html page to another page
我有两个页面 - "page 1" 和 "page 2"。在第 1 页上有一个文本框,其值为例如100 和最后一个按钮。
通过按下按钮,我希望 javascript 将文本框的值保存在全局(?)变量中并跳转到第 2 页。使用 "window.onload" 我想要第二个 Javascript-提醒第 1 页保存的值的功能。
这是我的 Javascript 代码:
<script type="text/javascript">
var price; //declare outside the function = global variable ?
function save_price(){
alert("started_1"); //just for information
price = document.getElementById('the_id_of_the_textbox').value;
alert(price); //just for information
}
<script type="text/javascript">
function read_price(){
alert("started_2");
alert(price);
}
在 "page 1" 我有这个发送按钮:
<input class="button_send" id="button_send" type="submit" value="Submit_price" onclick="save_price();"/>
它启动 Javascript 功能并将我正确重定向到我的第 2 页。
但是在第二页上:
window.onload=read_price();
我总是得到全局变量价格的 "undefined" 值。
我已经阅读了很多关于这些全局变量的内容。例如。在此页面上:Problem with global variable.. 但我无法让它工作...
为什么这不起作用?
这里最好的选择是使用查询字符串 'send' 值。
how to get query string value using javascript
- 所以第 1 页重定向到 page2.html?someValue=ABC
- 然后第2页可以
读取查询字符串,特别是键 'someValue'
如果这不仅仅是一个学习练习,您可能需要考虑它的安全隐患。
全局变量在这里对您没有帮助,因为一旦重新加载页面,它们就会被销毁。
您有几个不同的选择:
- 您可以使用像 SammyJS 这样的 SPA 路由器,或者 Angularjs 和 ui-路由器,这样您的页面就是有状态的。
- 使用 sessionStorage 来存储您的状态。
- 将值存储在 URL 散列中。
不阅读您的代码,只阅读您的场景,我会使用 localStorage
来解决。
这是一个示例,我将使用 prompt()
简称。
第 1 页:
window.onload = function() {
var getInput = prompt("Hey type something here: ");
localStorage.setItem("storageName",getInput);
}
第 2 页:
window.onload = alert(localStorage.getItem("storageName"));
您也可以使用 cookie,但 localStorage 允许更多空间,并且当您请求页面时它们不会发送回服务器。
为此,我建议在 link 数据内发送数据。这是一种非常简单的方法,无需 PHP。只需获取第二页中的link并将前面的link替换为“”。
Page_One.html:
<script>
//Data to be transfered
var data = "HelloWorld";
//Redirect the user
location.replace("http://example.com/Page_Two.html?" + data);
</script>
Page_Two.html :
<script>
//Get the current link
var link = window.location.href;
//Replace all content before ? with ""
link = link.replace("http://example.com/Page_Two.html?","");
//Display content
document.write("Page_One.html contains:" + link + "");
</script>
希望对您有所帮助!
我有一个简单的方法(纯 JS):
第一页:
<a href= "www.example.com/mypageTWO.html?gtk=SGVsbG8gV29ybGQh==">Goto Your Info</a>
注意:您必须在 Base64
中对您的 GTK 值(即参数值)进行编码
下一页是第二页:
<script>
// first we get current URL (web page address in browser)
var dloc= window.location.href;
//then we split into chunks array
var dsplt= dloc.split("?");
//then we again split into final chunk array, but only second element
//of the first array i.e dsplt[1]
var sanitize= dsplt[1].split("=");
// now here comes the tricky part, join all elements into single //string. IT may be the case, that base64 string contain '=' sign, we shall find it
var dlen= sanitize.length;
var FinString= "";
// we will start from 1, bcoz first element is GTK the key we don't // want it
for(i=1;i<dlen;i++)
{
FinString= FinString+sanitize[i];
}
// afterwards, all the Base64 value will be ONE value.
// now we will convert this to Normal Text
var cleantxt= window.atob(FinString);
document.getElementById("yourname").innerHTML= "Your Name is : <b>"+cleantxt+" .";
你可以用参数解码信息做任何事情...比如重定向访客
立即到另一个页面通过“POST”方法表单自动提交
通过 Javasript 最终引导一个 php 页面,没有可见参数,但是有
不可见的隐藏参数。
我有两个页面 - "page 1" 和 "page 2"。在第 1 页上有一个文本框,其值为例如100 和最后一个按钮。
通过按下按钮,我希望 javascript 将文本框的值保存在全局(?)变量中并跳转到第 2 页。使用 "window.onload" 我想要第二个 Javascript-提醒第 1 页保存的值的功能。
这是我的 Javascript 代码:
<script type="text/javascript">
var price; //declare outside the function = global variable ?
function save_price(){
alert("started_1"); //just for information
price = document.getElementById('the_id_of_the_textbox').value;
alert(price); //just for information
}
<script type="text/javascript">
function read_price(){
alert("started_2");
alert(price);
}
在 "page 1" 我有这个发送按钮:
<input class="button_send" id="button_send" type="submit" value="Submit_price" onclick="save_price();"/>
它启动 Javascript 功能并将我正确重定向到我的第 2 页。
但是在第二页上:
window.onload=read_price();
我总是得到全局变量价格的 "undefined" 值。
我已经阅读了很多关于这些全局变量的内容。例如。在此页面上:Problem with global variable.. 但我无法让它工作...
为什么这不起作用?
这里最好的选择是使用查询字符串 'send' 值。
how to get query string value using javascript
- 所以第 1 页重定向到 page2.html?someValue=ABC
- 然后第2页可以 读取查询字符串,特别是键 'someValue'
如果这不仅仅是一个学习练习,您可能需要考虑它的安全隐患。
全局变量在这里对您没有帮助,因为一旦重新加载页面,它们就会被销毁。
您有几个不同的选择:
- 您可以使用像 SammyJS 这样的 SPA 路由器,或者 Angularjs 和 ui-路由器,这样您的页面就是有状态的。
- 使用 sessionStorage 来存储您的状态。
- 将值存储在 URL 散列中。
不阅读您的代码,只阅读您的场景,我会使用 localStorage
来解决。
这是一个示例,我将使用 prompt()
简称。
第 1 页:
window.onload = function() {
var getInput = prompt("Hey type something here: ");
localStorage.setItem("storageName",getInput);
}
第 2 页:
window.onload = alert(localStorage.getItem("storageName"));
您也可以使用 cookie,但 localStorage 允许更多空间,并且当您请求页面时它们不会发送回服务器。
为此,我建议在 link 数据内发送数据。这是一种非常简单的方法,无需 PHP。只需获取第二页中的link并将前面的link替换为“”。
Page_One.html:
<script>
//Data to be transfered
var data = "HelloWorld";
//Redirect the user
location.replace("http://example.com/Page_Two.html?" + data);
</script>
Page_Two.html :
<script>
//Get the current link
var link = window.location.href;
//Replace all content before ? with ""
link = link.replace("http://example.com/Page_Two.html?","");
//Display content
document.write("Page_One.html contains:" + link + "");
</script>
希望对您有所帮助!
我有一个简单的方法(纯 JS): 第一页:
<a href= "www.example.com/mypageTWO.html?gtk=SGVsbG8gV29ybGQh==">Goto Your Info</a>
注意:您必须在 Base64
中对您的 GTK 值(即参数值)进行编码下一页是第二页:
<script>
// first we get current URL (web page address in browser)
var dloc= window.location.href;
//then we split into chunks array
var dsplt= dloc.split("?");
//then we again split into final chunk array, but only second element
//of the first array i.e dsplt[1]
var sanitize= dsplt[1].split("=");
// now here comes the tricky part, join all elements into single //string. IT may be the case, that base64 string contain '=' sign, we shall find it
var dlen= sanitize.length;
var FinString= "";
// we will start from 1, bcoz first element is GTK the key we don't // want it
for(i=1;i<dlen;i++)
{
FinString= FinString+sanitize[i];
}
// afterwards, all the Base64 value will be ONE value.
// now we will convert this to Normal Text
var cleantxt= window.atob(FinString);
document.getElementById("yourname").innerHTML= "Your Name is : <b>"+cleantxt+" .";
你可以用参数解码信息做任何事情...比如重定向访客 立即到另一个页面通过“POST”方法表单自动提交 通过 Javasript 最终引导一个 php 页面,没有可见参数,但是有 不可见的隐藏参数。