Показать сообщение отдельно
  #3 (permalink)  
Старый 24.09.2010, 06:27
Аспирант
Отправить личное сообщение для vahrusha Посмотреть профиль Найти все сообщения от vahrusha
 
Регистрация: 19.01.2010
Сообщений: 42

Что-то 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 не сработает, лоадбар так и будет висеть вечно.

Последний раз редактировалось vahrusha, 28.10.2010 в 11:33.
Ответить с цитированием