如何在Javascript中添加一个额外的window.onload事件 [英] How can I add an additional window.onload event in Javascript

查看:106
本文介绍了如何在Javascript中添加一个额外的window.onload事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 如果我的asp.net用户控件我添加一些脚本到window.onload事件,如下所示: (!Page.ClientScript.IsStartupScriptRegistered(this.GetType(),onloadScriptName))
Page.ClientScript.RegisterStartupScript(this.GetType(),onloadScriptName,
window.onload = function(){myFunction );};,true);

我的问题是,如果onload事件中已经存在某些内容,则覆盖它。
如何让两个用户控件在每个执行javascript的onload事件?



**编辑:**感谢您的第三方信息库。我会记住他们

解决方案

建议的大多数解决方案都是Microsoft特定的,或者需要blo肿的库。这是一个好办法。这适用于符合W3C标准的浏览器和Microsoft IE。

  if(window.addEventListener)// W3C standard 
{
window.addEventListener('load',myFunction,false); // NB ** not **'onload'
}
else if(window.attachEvent)// Microsoft
{
window.attachEvent('onload',myFunction);
}


In my asp.net User Control I'm adding some script to the window.onload event like so:

if (!Page.ClientScript.IsStartupScriptRegistered(this.GetType(), onloadScriptName))
  Page.ClientScript.RegisterStartupScript(this.GetType(), onloadScriptName, 
    "window.onload = function() {myFunction();};", true);            

My problem is, if there is already something in the onload event, than this overwrites it. How would I go about allowing two user controls to each execute javascript in the onload event?

**Edit:**Thanks for the info on third party libraries. I'll keep them in mind.

解决方案

Most of the "solutions" suggested are Microsoft-specific, or require bloated libraries. Here's one good way. This works with W3C-compliant browsers and with Microsoft IE.

if (window.addEventListener) // W3C standard
{
  window.addEventListener('load', myFunction, false); // NB **not** 'onload'
} 
else if (window.attachEvent) // Microsoft
{
  window.attachEvent('onload', myFunction);
}

这篇关于如何在Javascript中添加一个额外的window.onload事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆