Javascript ScriptManager.RegisterClientScriptBlock在添加母版页时不再工作
我从C#调用javascript函数,如下所示:Javascript ScriptManager.RegisterClientScriptBlock在添加母版页时不再工作,javascript,c#,asp.net,Javascript,C#,Asp.net,我从C#调用javascript函数,如下所示: ScriptManager.RegisterClientScriptBlock(this, GetType(), "script", "$(function () {initializeMap(); });", true); 在我添加母版页之前,它工作得非常好: MasterPageFile="~/Header.master 并将我的代码放入asp内容: 在我添加了所有这些之后,javascript函数调用不再工作,我得
ScriptManager.RegisterClientScriptBlock(this, GetType(), "script", "$(function () {initializeMap(); });", true);
在我添加母版页之前,它工作得非常好:
MasterPageFile="~/Header.master
并将我的代码放入asp内容:
在我添加了所有这些之后,javascript函数调用不再工作,我得到了以下错误:
未捕获引用错误:$未定义
当我点击这个错误时,它也会让我明白
$(函数(){initializeMap();});
您知道这个问题吗?我敢打赌,如果jQuery声明仍在声明中,那么它在HTML中的位置会有所不同 我倾向于使用
RegisterStartupScript
,虽然不是防弹的,但不太可能导致这些问题,因为脚本将在页面底部呈现
ScriptManager.RegisterStartupScript(this, GetType(), "script", "$(function () {initializeMap(); });", true);
仅在母版页中添加
ScriptManager
,每隔一页将其删除,然后再试一次。此“$not defined”错误通常在未加载jQuery库时出现。这是我首先想到的,但我包含的所有其他脚本(例如bootstrap)都工作正常。。或多次引用,检查主页面和子页面中的重复引用,查看呈现的HTML。查看您的$(function(){})
的位置以及jQuery库的加载位置。我添加了另一个母版页,它现在似乎可以工作了。。。在第一个母版页上没有任何脚本,所以我不知道发生了什么
<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400"></asp:ScriptManager>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
<!-- end of secondary bar -->
</asp:ContentPlaceHolder>