javascript - 该行的脚本代码不适用于方法

标签 javascript c# asp.net registerstartupscript

我的 .aspx 页面中有一个脚本(HTML 标记):

<div id="alert">
    <asp:Label ID="lblAlert" style="font-size: xx-large" runat="server"></asp:Label>
</div>
<!-- /.alert -->

<script>

    function AutoHideAlert(v) {
        var al = document.getElementById('<%=lblAlert.ClientID%>');

        al.innerText = v;

        $("#alert").fadeTo(3500, 500).slideUp(1500, function () {
            $("#alert").slideUp(500);
        });
    }

</script>

我正在调用AutoHideAlert(v)使用 RegisterStartupScriptaspx.cs 文件(代码隐藏)中运行函数我添加了 RegisterStartupScriptShowMessage方法:

private void ShowMessage(string msg)
{
    ScriptManager.RegisterStartupScript(this, GetType(), null, "AutoHideAlert('"+msg+"');", true);
}

问题是当我调用 ShowMessage 时包含脚本代码行的方法不起作用。但是当我运行脚本代码行时它就可以工作了;问题是为什么它不运行 ShowMessage

编辑1:从@M4N的评论中,我尝试将第三个参数设置为 "Alert Message"但它仍然不起作用。

private void ShowMessage(string msg)
{
    ScriptManager.RegisterStartupScript(this, GetType(), "Alert Message", "AutoHideAlert('"+msg+"');", true);
}

最佳答案

我想 ScriptManager.RegisterStartupScript 在生成带有方法的脚本之前生成脚本。由于JS在浏览器读取时执行,因此在执行时AutoHideAlert如果还不存在 尝试使用 $(document).ready 如果你有 JQuery

ScriptManager.RegisterStartupScript(this, GetType(), "Alert Message",
     "$(document).ready(function(){ AutoHideAlert('"+msg+"'); }", true);

或者 document.addEventListener('DOMContentLoaded' 不使用 JQuery

ScriptManager.RegisterStartupScript(this, GetType(), "Alert Message",
     "document.addEventListener('DOMContentLoaded', 
                                function(){ AutoHideAlert('"+msg+"'); })", true);

关于javascript - 该行的脚本代码不适用于方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46383658/

相关文章:

javascript - 加载 JavaScript 或 CSS 而不执行它们的方法有哪些?

c# - 为什么我的 CheckBox.Checked 属性会重置?

javascript - 从 javascript 函数调用 razor c# 函数

c# - MVC 4 强类型 View 不传递 Controller 模型

asp.net - 如何在 ASP.NET 的 DetailsView 中创建自定义按钮?

javascript - 如何同时使用两个不同的jquery版本。我的代码无法在两个不同的 jquery 版本中正常工作

javascript - 如何将参数传递给将 div 从页面模型填充到其 Razor 页面的 javascript 函数?

Grails 的 GSP 页面中的 JavaScript

c# - 如何在 Windows 10 通用应用程序中显示模态窗口?

c# - 如何在 MVC4 中使用所有查询字符串和哈希重定向移动设备?