我有一个外部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();">
然而,由于我添加了最后一个功能,繁忙指示器停止工作,因为它也使用了onload函数。我怎么做才能让它恢复正常?
这不是最优雅的方式。但是它会工作的
<body lang="de" class="fade-in one" onLoad="document.forms.login.username.focus();setupFunc();">
删除body onload标签,并添加:
<script type="text/javascript">
window.onload = function() {
document.forms.login.username.focus();
setupFunc();
};
</script>
在你的外部Javascript(确保它仍然在<head>
标签)。这应该会改变窗口。onLoad到你的自定义函数,它做你需要的,然后调用setupFunc。