Javascript, используя onload дважды в HTML-файл и внешний файл сценария - PullRequest
1 голос
/ 19 сентября 2011

У меня есть внешний 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();
       }
     }

По сути, он показывает небольшой индикатор занятости внутримой веб-сайт.

У меня также есть функция onload в моем теге body, это новое и помогает мне сосредоточиться на текстовом поле имени пользователя при загрузке страницы.

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

Однако, так как ядобавив эту последнюю функцию, индикатор занятости перестал работать, потому что он также использует функцию загрузки.Что я могу сделать, чтобы это снова заработало?

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

это не самый элегантный способ .. но он будет работать

<body lang="de" class="fade-in one" onLoad="document.forms.login.username.focus();setupFunc();">
2 голосов
/ 19 сентября 2011

Удалите тег загрузки тела и вставьте:

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

После вашего внешнего Javascript (убедитесь, что он все еще находится в теге <head>). Это должно изменить window.onLoad на вашу пользовательскую функцию, которая делает то, что вам нужно, а затем вызывает setupFunc.

...