在JavaScript中将值从一个页面传递到另一个页面

时间:2014-01-31 07:58:51

标签: javascript html

在下面的代码中,该值不会从一个页面传递到另一个页面。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">

    function generateRow() {
        var myvar = "testuser";

        '<%Session["temp"] = "' + myvar +'"; %>';
        window.location = "WebForm2.aspx";
    }
</script>
<head>
    <title></title>
</head>
<body>
    <div runat="server">
        <input id="Button1" type="button" onclick="generateRow()" value="button" />
    </div>

</body>
</html>

上面的代码有什么问题?

2 个答案:

答案 0 :(得分:8)

您无法使用Javascript设置会话。你的输出JS文件正是你写下来的。

你可以这样做:

window.location = "WebForm2.aspx?temp=" + myvar;

在Webform2中你可以这样做:

Request.querystring["temp"];

答案 1 :(得分:4)

下一页不会保留一页中的全局变量。

如果你想要这个客户端,你有三个选择(至少):

  1. 将变量传递给查询字符串的下一页,例如:

    window.location = "WebForm2.aspx?myvar=" + encodeURIComponent(myvar);
    
  2. 使用cookie(数百万个在线示例,我不会重复它们,阅读cookie会有点痛苦)。

  3. 使用客户端会话存储或本地存储,这两者都包含here。这是客户端会话存储示例:

    // Setting
    sessionStorage.myvar = myvar;
    
    // Getting (on the next page)
    var myvar = sessionStorage.myvar;
    

    sessionStorage是浏览器提供的全局变量。)

    这适用于just about any browser you need to care about(IE8 +,以及基本上所有其他内容的现代版本)。

  4. 服务器端,选项1和2都可以工作,但1会最有意义。