Проблемка с 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. Задача именно чтобы прошел запрос до картинки, с гетами, показывать то что вернется надобности нет. |
Ларин, setTimeout() пока никто не отменял...
|
ksa, такая же беда. Делаю:
setTimeout(postform.submit(), 1000); Время проходит, субмит отправляется, а сама страница с момента отправки и до момента перехода как будто замораживается. |
Цитата:
|
Цитата:
setTimeout(postform.submit.bind(postform), 1000); |
Ларин,
1. вместо субмита ставьте в форму кнопу button, на которую повесьте Вашу функцию, по окончании анимации вызовите субмит формы - ну или кликните скрытую display:none кнопку субмит |
Цитата:
Прочитал вопрос автора. Блин, ну все просто же. Устанавливаем обработчик события onload картинки, и в нем уже делаем сабмит формы. А кстати - в чем смысл грузить какую-то картинку если юзер ее и увидеть то не успеет? |
Часовой пояс GMT +3, время: 03:47. |