Web用户控件中Javascript的ReferenceError

ReferenceError for Javascript within Web user control

本文关键字:ReferenceError Javascript 用户 控件 Web      更新时间:2023-09-26

我在fast中也遇到过类似的问题,但总是能够通过将脚本放在主页中来规避这些问题。然而,这一次,脚本需要在web用户控件中。

但由于某种原因,脚本没有加载,Firefox的控制台告诉我ReferenceError: deleteSystemMessage没有定义,我只是不明白为什么。

这基本上是网络用户控件内部的设置:

<script type="text/javascript">    
    function deleteSystemMessage() {
        $(".bubbletext").val(callWebMethod("EventCalendar.aspx/GetTodaysSystemMessage", {}));
        hideActiveToolTip();
    }
    function hideActiveToolTip() {
        var tooltip = Telerik.Web.UI.RadToolTip.getCurrent();
        if (tooltip) {
            tooltip.hide();
        }
    }
</script>

尽管代码似乎在做它没有宣传的事情。页面根本不知道脚本的存在。

该web用户控件位于RadToolTipManager中,可以在主页上执行Javascript,也可以处理正常的服务器端点击事件。

可能出了什么问题?

通过AJAX加载用户控件时(http://demos.telerik.com/aspnet-ajax/tooltip/examples/targetcontrolsandajax/defaultcs.aspx?product=tooltip),您必须按照MSAJAX要求的方式注册脚本,这样浏览器就会解析它们。如果没有嘟嘟车经理,这种情况也会发生。

总之,通过ScriptManager.RegisterClientScriptBlock方法注册您的脚本(https://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerclientscriptblock(v=vs.110).aspx)