【问题标题】:C# asp.net calling javascriptC# asp.net 调用 javascript
【发布时间】:2011-03-03 19:29:50
【问题描述】:

我在 asp:content 中有一个 div:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div id="slidebar" style="display:none;"  >There are some pending approvals.Please    approve    by the 25th of this month

<a href="#" id="slink" style="margin-left:10px;" onclick="fade('slidebar');">Click here to   close <sup style="font:caption;color:#373636;">X</sup></a>
</div>

<script language="javascript" type="text/javascript">
 function showbanner()
  {
   document.getElementById("slidebar").style.visibility="visible";
  }
</script>
<\asp:content>

以及背后的代码:

 ClientScript.RegisterClientScriptBlock(Page.GetType(), "displaybanner", "return  showbanner();", true);

我无法从后面的代码中调用函数 showbanner,即使我使用 registerclientscript 直接调用 showbanner 内的语句...它也不会被调用。

请帮忙

【问题讨论】:

  • 您的 aspx 将 作为您的第一个内容占位符的结束标记。这是发布时的错字,还是在您的代码中?
  • 这是一个打字错误...标记没有问题
  • @abbas:我原来的答案是错误的,所以我把它删除了。我会再看一遍,看看能找到什么。
  • 在调用document.getElementById 之前,您是否尝试在showbanner 中添加alert('test');,只是为了验证它没有触发?

标签: c# asp.net registerclientscriptblock


【解决方案1】:

visibilitydisplay的属性不一样,把js函数改成:

function showbanner()
{
    document.getElementById("slidebar").style.display="block";
}

还将您的代码更改为

ClientScript.RegisterStartupScript(Page.GetType(), "displaybanner", "showbanner();", true);

所以脚本在页面加载后执行,否则它将找不到元素。

【讨论】:

  • 但问题是即使我添加了一个警报..它也不会被解雇......(在节目横幅内))
  • 请注意,我还删除了 return,这导致 js 错误导致脚本停止运行,因为您实际上并没有从该函数返回任何内容
  • 我同意这是一个错误......但删除了它仍然无法正常工作:(
【解决方案2】:

我不确定为什么您的注册脚本不起作用,但您是否尝试过将 javascript 调用直接放在脚本块内的页面上?如果可行,则将脚本块包装在页面底部的面板中,并使用 visible="false"。在您确定希望它工作的代码中,将可见性设置为 true。

如果您使用的是 Jquery,我还将您的脚本块的内容包装在:

$(document).ready(function() {
    //javascript call here
});

只是为了确保在页面实际处理它之前它不会被调用。

当然,这一切都假设您的函数调用是好的,并且问题在于注册客户端脚本。

【讨论】:

  • 我在 onload 函数中调用的还有一件事……这是个问题吗??
  • 不确定,但请查看 Equiso 的答案。看起来他解决了你的问题。
【解决方案3】:

好吧,我的一个团队成员 Mahi 想出了一个解决方案......而不是 CleientScript.reg......

我们使用了 Page.RegisterStartupScript,它运行良好 :))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多