如何从母版页调用 javascript?

Posted

技术标签:

【中文标题】如何从母版页调用 javascript?【英文标题】:How to call a javascript from master page? 【发布时间】:2011-07-20 10:09:36 【问题描述】:

我正在尝试从母版页调用 javascript 警报,其中我有一个更新面板。里面有一个按钮和一个文本框。

我需要在单击母版页中的按钮时调用警报。到目前为止,它似乎不起作用。请帮忙。

 Page.ClientScript.RegisterStartupScript
                        (this.GetType(), "alert", "invokeMeMaster();", true);

这是我在按钮点击中写的。 invokerMEMaster 仅包含一条警报消息。我需要在单击警报的确定按钮时重新加载页面。我该怎么做呢?

【问题讨论】:

你能贴出不起作用的代码吗? 【参考方案1】:

更新面板在回发时清除 javascript 代码,因此请尝试将此代码放在标题上。

<script type="text/javascript">

$(document).ready(
function()

   Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
   function EndRequestHandler(sender, args) //put your code here

);

</script>

【讨论】:

我需要从代码后面添加警报消息...如果我在源页面中使用它,我应该如何调用我的脚本?【参考方案2】:

您需要一个ScriptManagerProxy,ScriptManager 位于您的内容页面中

【讨论】:

【参考方案3】:

如果我能猜到您的问题(心理调试):当更新面板更新时,javascript 不会在您的页面上呈现或触发。

尝试在更新面板中注册您的 javascript:

ScriptManager.RegisterClientScriptBlock(Page,typeof(string),"JavaScriptCall",script.ToString(), false);

【讨论】:

【参考方案4】:

如果我正确理解您的问题,您的内容页面中有一个需要从母版页调用的 JS 函数吗?

我要做的是向您的母版页添加一个隐藏的输入控件和一个警报功能:

    <input runat="server" id="hdnAlert" name="Alert" type="hidden" />

    <script type="text/javascript"  language="javascript">  
        function AlertMe() alert(document.getElementByID("hdnAlert").value); 
    </script>

然后您可以从内容页面更改输入控件的值:

    htmlInputHidden hdnTemp = new HtmlInputHidden();
    hdnTemp = (HtmlInputHidden)Master.FindControl("hdnAlert");
    hdnTemp.Value = "Message To Alert";

然后只需让母版页中的按钮调用位于母版页中的“AlertMe”功能。

【讨论】:

以上是关于如何从母版页调用 javascript?的主要内容,如果未能解决你的问题,请参考以下文章

如何从母版页上的用户控件访问母版页中定义的数据集?

如何使母版页中 div 的高度在内容页中展开?

动态母版页,可访问两个母版中的变量

MVC 和 jQuery 验证,在哪里“编织”javascript 以及如何嵌入母版页?

Asp.net 如何取母版页的属性及控件及方法调用求解答

如何在母版页中调用jquery ui autocomplete以在内容页面中定义控件