2015-03-13 68 views
0

我想使用JavaScript分配锚标记的href。分配锚标记的href

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="AnchorTRY.aspx.cs" Inherits="AnchorTRY" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 

    <a id="anchr" runat="server"> </a> 
    <script type="text/javascript"> 
     if (System.Web.HttpContext.Current.Session["Email"] == null && System.Web.HttpContext.Current.Session["uid"] == null) 
     { 
      document.getElementById("anchr").setAttribute('href', "User Login.aspx"); 
      document.getElementById("anchr").innerText = "Create Your Own Package"; 
     } 
     else { 
      document.getElementById("anchr").setAttribute('href', "Cities.aspx"); 
      document.getElementById("anchr").innerText = "Add to Your Package"; 
     } 
    </script> 

</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 
</asp:Content> 
+0

您可以检查控制台日志中的错误? – 2015-03-13 06:46:34

+0

什么不起作用?它是服务器端还是客户端?如果你在浏览器的JavaScript控制台中运行JS,它是否工作? – nishantjr 2015-03-13 06:47:10

+0

我不知道什么'System.Web.HttpContext.Current.Session'是。 – chiliNUT 2015-03-13 06:47:35

回答

1

更改你的代码这一点,

<script type="text/javascript"> 
     function setHref() { 
      var flag = <% 
      if (System.Web.HttpContext.Current.Session["Email"] == null && System.Web.HttpContext.Current.Session["uid"] == null) 
      { 
       response.write("true"); 
      } 
      else 
      { 
       response.write("false"); 
      } 
      %>; 

      if(flag == true) 
      { 
       document.getElementById("anchr").setAttribute('href', "User Login.aspx"); 
       document.getElementById("anchr").innerText = "Create Your Own Package"; 
      } 
      else { 
       document.getElementById("anchr").setAttribute('href', "Cities.aspx"); 
       document.getElementById("anchr").innerText = "Add to Your Package"; 
      } 
     } 
    </script> 

在我们指定的服务器端代码输出到一个JavaScript变量“标志”,并根据其价值的JavaScript代码将分配代码href属性。

我们已经将这段代码放入JavaScript函数中,我们将在文档加载时调用它,以便正确更改锚点的'href',否则代码在加载之前无法访问锚点标记。

呼叫在body标签这样的功能,

<body onload="setHref();"> 

希望工程,让我知道,如果你想要更多的帮助。谢谢。

+0

您能否请告诉我在脚本中使用<% %> – 2015-03-13 09:08:50

+0

如果您希望在页面上编写服务器端代码以及HTML和JavaScript,您需要使用'<% %>'标签。 – BabyDuck 2015-03-13 09:10:30

+0

先生,我想传递查询字符串以及ocument.getElementById(“anchr”)。setAttribute('href',“User Login.aspx?prev =”+ Request.QueryString [“city”]“); Can You Please告诉我怎样才能做到这一点,我通过使用<%%>来使用它,并尝试了所有我能做的事情。Uncaught ReferenceError:Request is not defined错误 – 2015-03-13 11:00:07

1
<a href="Index/MasterPage?modID=<%=Session["ProductID"]%> "> 

可以使用这样我们直接可以分配会话值HREF