【问题标题】:javascript function call without click hyper link button whyjavascript函数调用没有点击超链接按钮为什么
【发布时间】:2015-11-02 09:51:18
【问题描述】:

三个超链接按钮,我调用一个javascript函数来点击按钮,我在检查条件后将链接按钮ID存储在相应的会话中,但该函数是在没有点击超链接按钮的情况下调用的,它总是执行最后一个会话值

<li><a href="" id="link_leave" onclick="showBtton(this.id)">Leave Policy</a></li>
 <li><a href="" id="link_tour" onclick="showBtton(this.id)">Tour policy </a></li>
 <li><a href="" id="link_it" onclick="showBtton(this.id)">IT Policy</a> </li>

java脚本函数调用

<script lang="javascript" >

    {
        var itsPostBack = <%=Page.IsPostBack ? "true" : "false" %>;
        alert(itsPostBack);
        if(itsPostBack!=false)
        {
            function showBtton(id) 
            {


                if ("link_leave"==id) 
                {
                    var a = "leave_button";
                    alert(a);

                    <%--  '<%Session["identify"] = "' + a + '"; %>';  --%>
                    '<%Session["identify"] = "leave_button"; %>';

                    var Session_value = "";
                    Session_value = '<%=Session["identify"] %>'; 
                    Session_value =Session["identify"] ;
                    alert(Session_value);
                    javascript: window.open('policy.aspx', '_blank');
                }
                if ("link_tour"==id)
                {
                    var a = "tour_button";
                    alert(a);

                    <%--  '<%Session["identify"] = "' + a + '"; %>'; --%>
                    '<%Session["identify"] = "tour_button"; %>';

                    var Session_value = "";
                    Session_value = '<%=Session["identify"] %>';
                    Session_value = Session["identify"];
                    alert(Session_value);
                    javascript: window.open('policy.aspx', '_blank');
                }

                if ("link_it"==id)
                {
                    var a = "it_button";
                    alert(a);

                    <%--  '<%Session["identify"] = "' + a + '"; %>'; --%>
                    '<%Session["identify"] = "it_button"; %>';

                    var Session_value = "";
                    Session_value = '<%=Session["identify"] %>';
                    Session_value = Session["identify"];
                    alert(Session_value);
                    javascript: window.open('policy.aspx', '_blank'); 

                }

            } 
        }
    }

    </script>

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    问题是您正在尝试使用 Javascript 修改服务器端 ASP.NET 会话,这是不可能的,因为一旦您运行 Javascript 代码,它就会在无法直接访问服务器会话的客户端浏览器上运行。

    你有几个选择:

    1. 通过 AJAX 调用将按钮 ID 发送到服务器,然后在需要时通过 AJAX 调用检索它
    2. 使用本地会话存储来实现客户端会话,该会话存储在浏览器而不是服务器中,因此您可以通过 Javascript 对其进行修改。请参阅此页面了解更多详情:https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage
    3. 另一种选择是将按钮 ID 作为查询字符串参数传递到 URL 中,这样您就可以避免会话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 2022-10-15
      • 2012-02-02
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2012-11-24
      相关资源
      最近更新 更多