为什么需要从代码隐藏调用 JavaScript 函数

Why would there be a need to call a JavaScript function from code behind?

本文关键字:调用 JavaScript 函数 隐藏 代码 为什么      更新时间:2023-09-26

我只是在网上寻找关于从代码隐藏调用JavaScript函数的信息,从我看到你在点击事件上注册StartupScript方法的例子中。但是,为什么您想要或需要这样做,而不仅仅是将其连接到OnClientClick事件?是否需要从代码隐藏调用 JavaScript 函数?

RegisterStartupScript 是适用于无限多种场景的众多选项之一。 最后,你可以用RegisterStartupScript做的任何事情都可以用另一种方式完成。 我曾经认为这是一种方便,现在我避免了它,关注点的分离和这种更高阶段的"启蒙"。

我看到 RegisterStartupScript 仍在使用的主要地方是自定义控件,这些控件应该在最终用户对它们一无所知的情况下自行连接。 请参阅 AjaxControlToolKit、UpdatePanel、ScriptManager 等。 他们都需要javascript,但出于显而易见的原因,不希望你包含他们的客户端脚本或注册它们。

随机场景:

if (User.Identity.Name == "Frank")
    RegisterStartupScript(this, GetType(), "Frank", "alert("Hey Frank, you owe me money!");

替代方案,让服务器端设置一个隐藏字段。

<input type="hidden" id="name" value="<%= User.Identity.Name %>" />
<script type="text/javascript">
    $(document).ready(function() {
        if ($("#name").val() == "Frank")
            alert("Hey Frank, you owe me money!");
    });
</script>