Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2013, 20:27
Новичок на форуме
Отправить личное сообщение для Ларин Посмотреть профиль Найти все сообщения от Ларин
 
Регистрация: 26.04.2013
Сообщений: 2

Проблемка с OnSubmit = return false;
Приветствую.
Существует форма(метод пост): два текстовых инпута (a и b) и кнопка. Я хочу при отправке формы, времено останавливать отправку, вызывать изображение(picture) с динамичной страницы, а затем отправлять все дальше.

Вышла такая функция(вызывается в OnSubmit с return false):

function stop(postform) {
//Соурсом изображения делаю адрес нужной мне картинки с двумя гетами, взятыми из текстовых полей.
document.getElementById("picture").src = '127.0.0.1/photo.png?a='+ document.getElementById("a").value +"&b="+ document.getElementById("b").value;

//Немного "притормаживаю" выполнение, чтобы картинка успела загрузиться 
 var date = new Date();
 var curDate = null;
 do { curDate = new Date(); }
 while(curDate-date < 1000);

//отправляю форму
postform.submit(); 
   }



С Хромом, Ие и Оперой все нормально проходит, картинка успешно запрашивается с гетами, даже с меньшей паузой, а после пост отправляется по назначению.

Но почему-то у пользователей с лисой, запрос до картинки не проходит.

Примечательно, что если вставить какой-нибудь alert('a'); между изменением соурса изображения и приостановкой, или между приостоновкой и .submit, то все работает так как надо, изображение успешно загружается.
Сначала думал что все дело в "притормаживании" и просто не хватает времени, но даже при паузе в 10к мс и больше, страница даже не пытается обратиться к соурсу картинки. Значит, наверное, дело не в этом.

По OnClick, кстати, без отправки поста, запрос проходит нормально.


Интересует является ли это какой-то фичей фаерфокса, для дополнительной безопасности, или просто этот браузер как-то иначе обрабатывает события?

Чем можно попробовать заменить, в таком случае, задержку и субмит, чтобы запрос к изображению успевал пройти перед переходом по посту?


P.S. Задача именно чтобы прошел запрос до картинки, с гетами, показывать то что вернется надобности нет.

Последний раз редактировалось Ларин, 26.04.2013 в 20:34.
Ответить с цитированием
  #2 (permalink)  
Старый 26.04.2013, 20:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Ларин, setTimeout() пока никто не отменял...
Ответить с цитированием
  #3 (permalink)  
Старый 26.04.2013, 21:02
Новичок на форуме
Отправить личное сообщение для Ларин Посмотреть профиль Найти все сообщения от Ларин
 
Регистрация: 26.04.2013
Сообщений: 2

ksa, такая же беда. Делаю:

setTimeout(postform.submit(), 1000);


Время проходит, субмит отправляется, а сама страница с момента отправки и до момента перехода как будто замораживается.

Последний раз редактировалось Ларин, 26.04.2013 в 21:22.
Ответить с цитированием
  #4 (permalink)  
Старый 26.04.2013, 21:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от Ларин
такая же беда
Тогда готовь тестовый пример... Т.к. я пока "замороженых страниц" не видел...
Ответить с цитированием
  #5 (permalink)  
Старый 26.04.2013, 21:38
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ларин
setTimeout(postform.submit(), 1000);
Ну тупо же
setTimeout(postform.submit.bind(postform), 1000);
Ответить с цитированием
  #6 (permalink)  
Старый 26.04.2013, 23:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ларин,
1. вместо субмита ставьте в форму кнопу button, на которую повесьте Вашу функцию, по окончании анимации вызовите субмит формы - ну или кликните скрытую display:none кнопку субмит
Ответить с цитированием
  #7 (permalink)  
Старый 27.04.2013, 04:32
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Deff
ну или кликните скрытую display:none кнопку субмит
События, программно вызванные в браузере, не влекут за собой действия по умолчанию. Клик по кнопке ничего не даст.

Прочитал вопрос автора. Блин, ну все просто же.
Устанавливаем обработчик события onload картинки, и в нем уже делаем сабмит формы. А кстати - в чем смысл грузить какую-то картинку если юзер ее и увидеть то не успеет?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции Hol1killer Prototype & script.aculo.us 11 05.12.2016 01:37
Помогите разобраться ŞΘLƉiΞR Общие вопросы Javascript 2 28.08.2012 11:57
return false, Влияет на вложенные меню Gamestop Общие вопросы Javascript 7 29.10.2011 13:59
буфер обмена в Firefox KOLANICH Общие вопросы Javascript 4 01.07.2010 18:12
Проблема с if...else parzh-junior Элементы интерфейса 18 04.12.2009 17:17