Javascript在html文件和外部脚本文件中使用onload两次

时间:2011-09-19 16:13:43

标签: javascript onload

我有一个外部JS文件,我加载到我的HTML

<script type="text/javascript" src="../js/busy.js"></script>

脚本文件本身如下所示:

window.onload = setupFunc;

     function setupFunc() {
       document.getElementsByTagName('body')[0].onclick = clickFunc;
       hideBusysign();
         Wicket.Ajax.registerPreCallHandler(showBusysign);
         Wicket.Ajax.registerPostCallHandler(hideBusysign);
         Wicket.Ajax.registerFailureHandler(hideBusysign);
     }

     function hideBusysign() {
       document.getElementById('busy').style.display ='none';
     }

     function showBusysign() {
       document.getElementById('busy').style.display ='block';
     }

     function clickFunc(eventData) {
       var clickedElement = (window.event) ? event.srcElement : eventData.target;
       if (clickedElement.type.toUpperCase() == 'BUTTON' || clickedElement.type.toUpperCase() == 'SUBMIT') {
         showBusysign();
       }
     }

基本上,它在我的网站中显示了一个忙碌的指标。

我的body标签中也有一个onload函数,这是新的,可以帮助我在页面加载时专注于用户名文本字段。

<body lang="de" class="fade-in one" onLoad="document.forms.login.username.focus();">

但是,由于我添加了最后一个功能,忙指示符停止工作,因为它也使用了onload功能。我该怎么做才能让它再次发挥作用?

2 个答案:

答案 0 :(得分:3)

这不是最优雅的方式..但它会起作用

<body lang="de" class="fade-in one" onLoad="document.forms.login.username.focus();setupFunc();">

答案 1 :(得分:2)

删除你的身体onload标签,然后输入:

<script type="text/javascript">
window.onload = function() {
    document.forms.login.username.focus();
    setupFunc();
};
</script>

在您的外部Javascript之后(确保它仍然在<head>标记中)。这应该将window.onLoad更改为您的自定义函数,它可以满足您的需要,然后调用setupFunc。