javascript函数调用没有单击超链接按钮为什么

时间:2015-11-02 09:51:19

标签: javascript asp.net

三个超链接按钮,我调用一个javascript函数到onclick按钮,我检查条件后在相应的会话中存储链接按钮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>

1 个答案:

答案 0 :(得分:0)

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

您有几个选择:

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