加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 有没有= window.onload在Javascript?

发布时间:2020-12-15 20:08:58 所属栏目:asp.Net 来源:网络整理
导读:最近我想出了以下问题: 在我网站的所有html页面中,我在body onLoad事件中调用一个函数: body onLoad="func1();" 这是我的html模板的一部分,所以它出现在我网站的每个页面,我不能改变.现在,这个协议是在某些页面上,我需要调用一些其他函数onload,我尝试使用
最近我想出了以下问题:

在我网站的所有html页面中,我在body onLoad事件中调用一个函数:

<body onLoad="func1();">

这是我的html模板的一部分,所以它出现在我网站的每个页面,我不能改变.现在,这个协议是在某些页面上,我需要调用一些其他函数onload,我尝试使用window.onload属性,但它会擦除func1的调用…

我现在可以说:

window.onload = func2(); //where func2() calls to func1()

但这看起来很肮脏?不是吗

那么,有没有办法为那些即将被执行的onload添加一些功能,而不会删除旧的?另外我使用asp.net,如果这可以帮助…

谢谢!

解决方法

您可以使用jQuery链接加载处理程序.反复使用jQuery.load或jQuery(document).ready将链接你的处理程序(我相信).你的另一个选择是以编程方式执行,这意味着你需要一个辅助功能,它将为你链接你的负载处理程序.您可以使用闭包(或匿名函数)来执行此操作:
var addOnLoadHandler = function(newHandler) {

    if (typeof window.onload != 'function') {
        window.onload = newHandler;
    }

    else {
        var oldHandler = window.onload;
        window.onload = function() {
            if (oldHandler) {
                oldHandler();
            }
            newHandler();
        };
    }
};

你将不得不以编程方式绑定你的功能,所以你必须做:

addOnLoadHandlers(function() {
 alert("Hi I am the first onLoad handler!");
});

addOnLoadHandlers(function() {
 alert("Hi I am the second onLoad handler!");
});

在一个javascript文件(或在您的html文件).

另一种方法是使用数组:

var onloaders = new Array();

function runOnLoads() {
    for (i = 0; i < onloaders.length; i++) {
        try {
            var handler = onloaders[i];
            handler();
        } catch(error) {
            alert(error.message);
        }
    }
}

function addLoader(obj) {
    onloaders[onloaders.length] = obj;
}

在您的HTML或Javascript文件中:

addLoader(function() {
 alert("Hi I am the first onLoad handler!");
});

addLoader(function() {
 alert("Hi I am the second onLoad handler!");
});

然后在你的html中,你可以做< body onload =“runOnLoads()”>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读