从后面的代码调用JavaScript函数(c#)不起作用

时间:2014-11-17 22:01:08

标签: javascript c# jquery asp.net

我试图从代码隐藏中调用Javascript,但形成某些原因它无法正常工作。让我解释一下我要完成的任务:当页面加载时,系统需要检查这是否是用户第一次访问此页面。如果是这样,灯箱将打开。所以我在页面中创建了一个javascript函数onPageLoad我想调用这个函数,如果它是必要的。这是我到目前为止,看起来非常直接,但它不起作用。我将不胜感激。

这是

HTML:

  <form id="form1" runat="server">
  <div>

  <a id="OpenTutorial"  href="../lightwindow/step1.html" params="lightwindow_width=450,lightwindow_height=470" class="lightwindow page-options">Open Tutorial</a>


  </div>


  <script>
    function OpenTutorial() { $("#OpenTutorial").click() }
   </script>

  </form>

代码背后:

    protected void Page_Load(object sender, EventArgs e)
    {

  //code to check if this is the first time
  ..... 
  // it this is the first time, call this function 
   Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "OpenTutorial()", true);

    }

3 个答案:

答案 0 :(得分:1)

更改函数的id或名称,使它们不同,它们在全局名称空间中发生冲突。

<a id="anc_OpenTutorial" />

<script>
    function OpenTutorial() { $("#anc_OpenTutorial").click() }
</script>

或者只是调用单击代码链接而不是调用该函数。

要按照链接更改它以访问DOM元素

$("#anc_OpenTutorial")[0].click() 

$("#anc_OpenTutorial").get(0).click() 

答案 1 :(得分:1)

也许尝试使用jQuery的触发器功能,即:

function OpenTutorial() { $("#OpenTutorial").trigger('click'); }

答案 2 :(得分:1)

如何重构你的javascript函数如下?

<form id="form1" runat="server">
<div>

<a id="OpenTutorial"  href="../lightwindow/step1.html" params="lightwindow_width=450,lightwindow_height=470" class="lightwindow page-options">Open Tutorial</a>

</div>


<script>
  // Function that Opens the Tutorial
  function OpenTutorial() { 
      // Using colorbox for an example, but you can start the lightbox through the function
      $('#OpenTutorial').colorbox(); 
  }

  $("#OpenTutorial").click(function(){ OpenTutorial() });
 </script>

</form>

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
   //code to check if this is the first time
   ..... 
   // it this is the first time, call this function 
   Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "OpenTutorial()", true);
}

编辑:更新OpenTutorial功能以启动灯箱而不是打开链接