【问题标题】:Body onload handler in a content page内容页面中的正文 onload 处理程序
【发布时间】:2009-02-09 15:00:09
【问题描述】:

如何在内容页面的正文负载上调用 Javascript 函数?因为我无法在此使用母版页正文 onload 的正文负载。

【问题讨论】:

    标签: c# javascript master-pages


    【解决方案1】:

    如果您使用的是 ASP.NET Ajax,那么您可以在您的内容页面上添加一个负载处理程序:

    Sys.Application.add_load(contentPageLoadHandler);
    
    function contentPageLoadHandler() {
        // do stuff
    }
    

    使用这种方法,每个内容页面甚至每个控件都可以设置自己的负载处理程序。请参阅this page 了解更多信息。


    或者,如果您使用的是 jQuery,则可以通过使用这种方法(在您的内容页面上)实现相同的目的:

    $(document).ready(function() {
      // do stuff
    });
    

    更多信息请参见this page

    【讨论】:

    • 如果您使用的是 DOM,虽然不太准确,但您可以执行 document.onload() = function() { }
    • @Kezzer:如果您在母版页内容页上都使用这种方法,则只会执行其中一个!
    【解决方案2】:

    您需要在母版页中注册StartupScipt

    Page.RegisterStartupScript("name", script);
    

    【讨论】:

      【解决方案3】:

      看来您之前已经处理了这个问题,只是对 googlers,实际上您可以使用母版页中的 onload,缺点是您必须输入与您的 javascript 函数相同的名称在每一页上调用,在某些情况下可能是空的......

      【讨论】:

        【解决方案4】:

        使用window.onload成功尝试:

        window.onload=function(){
         foo();
        }
        

        【讨论】:

        • 请注意:如果您在母版页内容页上都有此代码,则只会执行其中一个!
        • 这真的很糟糕 - 直接分配给 onload 会覆盖任何以前的值。推荐的做法是 addEventListener/attachEvent (quirksmode.org/js/events_advanced.html),任何库都会为您封装。
        猜你喜欢
        • 2011-07-22
        • 2013-08-15
        • 2011-03-01
        • 1970-01-01
        • 2017-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-26
        相关资源
        最近更新 更多