Что-то onerror не срабатывает.
Кратенько:
function sendForm(form, url) {
form = document.getElementById(form)
var frame = createIFrame()
form.setAttribute('target', frame.id)
form.setAttribute('action', url)
form.submit()
}
function createIFrame() {
var id = 'f'+Math.floor(Math.random()*99999)
var div = document.createElement('div')
div.innerHTML = '<iframe id="'+id+'" name="'+id+'" src="about:blank" style="display:none" onload="someLoadbar(\'hide\');alert(\'onload\')" onerror="someLoadbar(\'hide\');alert(\'onerror\')"></iframe>'
document.body.appendChild(div)
return document.getElementById(id)
}
<form id="uploader" method="post" action="" enctype="multipart/form-data" onsubmit="return false">
<input type="file" name="file" />
<input type="button" value="Отправить" onclick="someLoadbar('show');sendForm('uploader', 'some.php')" />
</form>
Onload отлично обрабатывается, но если разорвать соединение перед отправкой, то onerror не сработает, лоадбар так и будет висеть вечно.