Javascript 函数在放在母版页上时不会从代码隐藏处获取调用

本文关键字:代码 隐藏处 获取 调用 函数 母版页 Javascript | 更新日期: 2023-09-27 18:32:34

我有2个页面名为:abc.aspx和popupAbc.aspx

现在在 ABC 上.aspx我在单击时有以下按钮,我正在打开弹出窗口 Abc.aspx作为弹出窗口:

<asp:Button ID="btnOpenChildAbcPopup" runat="server" Text="Open" UseSubmitBehavior="false" CausesValidation="False" OnClick="btnOpenChildAbcPopup_Click" />

代码隐藏:

protected void btnOpenChildAbcPopup_Click(object sender, EventArgs e)
        {
            string url="../popupAbc.aspx";
            ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "OpenChildAbcPopup('" + url + "');",
                    true);
        }
function OpenChildAbcPopup(url) {
                    $.fancybox({
                        'onStart ': function () { $.fancybox.hideActivit() },
                        'onComplete': function () { $.fancybox.hideActivity() },
                        'titleShow': 'true',
                        'titlePosition': 'over',
                        'titleFormat': 'formatTitle',
                        'href': url,//popupAbc.aspx
                        'type': 'iframe',
                        'width': '1000',
                        'height': '500',
                        'fitToView': false,
                        'autoSize': false,
                        'hideOnOverlayClick': false,
                        'hideOnContentClick': false,
                        'overlayOpacity': 0.7,
                        'enableEscapeButton': false,
                        'closeEffect': 'none' 
                    });
                    $.fancybox.hideLoading();
                    return false;
                }

到目前为止,一切都运行良好,单击按钮后,我的popupAbc.aspx在弹出框中完美打开,但问题出在此popupAbc.aspx中。

我有一个按钮popupAbc.aspx我将在其中保存一些数据,保存数据后我想再次调用位于母版页上但该 JavaScript 函数未调用的 JavaScript 函数。

这是我的页面:popupAbc.aspx

  <%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/MyMaster.Master" CodeBehind="popupAbc.aspx.cs" Inherits="popupAbc.aspx" %>
<asp:Button ID="btnSubmit" runat="server" Text="Save" OnClick="btnSubmit_Click" UseSubmitBehavior="true"  ValidationGroup="p1" />
 protected void btnSubmit_Click(object sender, EventArgs e)
        {
            //code for saving form data in database and after that call javascript function which
            //is on MyMaster page
            ScriptManager.RegisterStartupScript(Page, GetType(), "Js", "ExitMyCurrentFancyBox();", true);
        }

但是在Firebug控制台中,它抛出错误,未定义ExitMyCurrentFancyBox

当我把这个 ExitMyCurrentFancyBox 函数放在我的popupAbc.aspx中时,它调用成功,但当我把它放在我的母版页上时,它没有调用。

function ExitMyCurrentFancyBox() {
                alert()
            }

注意My Abc.aspx 使用 update panelpopupAbc.aspx 不使用 update panel

谁能告诉我为什么当我将 Javascript 函数放在母版页上时不调用它,以及当它放在母版页上时如何调用它?

我已经尝试了所有这些,但以下任何一项仍然不起作用:

 // ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "ExitMyCurrentFancyBox();", true);
               // ScriptManager.RegisterStartupScript(Page, GetType(), "alert", "ExitMyCurrentFancyBox();", true);
                //ClientScript.RegisterClientScriptBlock(GetType(), "sas", "CloseFancyboxtl();", true);
              //  ScriptManager.RegisterStartupScript(this, this.GetType(), "ntmtch", "ExitMyCurrentFancyBox();", true);
          //  ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg", "ExitMyCurrentFancyBox();", true);
            //ScriptManager.RegisterStartupScript(this, this.GetType(), "msg", "ExitMyCurrentFancyBox;", true);
            ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), Guid.NewGuid().ToString(), "ExitMyCurrentFancyBox();", true);

Javascript 函数在放在母版页上时不会从代码隐藏处获取调用

根据您的要求发布可能的解决方案。

将下一个方法添加到母版页:

public void ShowMyJavascript(){
    Response.Write("<script language='javascript'>alert('Here is my message to be displayed as an alert');</script>");
}

在您的内容页面中:

this.Master.ShowMyJavascript();