我像这样从 C# 调用 javascript 函数:
ScriptManager.RegisterClientScriptBlock(this, GetType(), "script", "$(function () {initializeMap(); });", true);
在我添加母版页之前它工作得很好:
MasterPageFile="~/Header.master
<%@ Register Assembly="myassembly" Namespace="mynamesapce" TagPrefix="mytag" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
并将我的代码放入 asp 内容中:
<asp:Content ID="Content1" ContentPlaceHolderID="Body" runat="Server">
添加完所有这些后,javascript 函数调用不再起作用,并且出现此错误:
Uncaught ReferenceError: $ is not defined
当我点击错误时,它也会出现
$(function () {initializeMap(); });
您知道这个问题吗?
最佳答案
我敢打赌,如果您的 jQuery 声明仍在声明中,那么它在 HTML 中的位置会有所不同。
我倾向于使用 RegisterStartupScript
,虽然不是万无一失,但不太可能导致这些问题,因为脚本将在页面底部呈现。
ScriptManager.RegisterStartupScript(this, GetType(), "script", "$(function () {initializeMap(); });", true);
关于javascript - 添加 MasterPage 时 ScriptManager.RegisterClientScriptBlock 不再工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44521195/