Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Opera, submit + setInterval 
:(
    Опции темы
s0lman
Дата 9.8.2011, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Всем привет
имеем код
Код

form.submit();

window.setInterval(function(){
                ...
            }, 1000);


Отправляется форма с файлом, внутри setInterval шлется ajax-запрос серверу, который возвращает прогресс загрузки (напр. {received: 20, size: 50})

Проблема в том, что в Opera и IE7 JS-код внутри setInterval вообще не исполняется (после сабмита)

Кто-нибудь может сказать, как можно обойти эту неприятность?
Спасибо.




--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
s0lman
Дата 9.8.2011, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



UPD. Насчет ИЕ7 я погорячился - проблема только в опере.


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
нуп
Дата 9.8.2011, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Попробовал такое, и работает в опере 11.50
Код

<form action="index.php" method="post" id="tt">
    <input type="text" name="aaa" value="bbb" />
</form>
<script>
window.setInterval(function(){ alert('aaa'); }, 1000);

<?
    if(!isset($_POST['aaa'])) {
        echo "document.getElementById('tt').submit();";
    }
?>

</script>

PM MAIL   Вверх
s0lman
Дата 10.8.2011, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



А такое попробуйте

Код

<html>
<head>
    <title>opera-test</title>
    <script type="text/javascript">

        function sendForm(){
            document.getElementById('form1').submit();
            opera.postError('after_submit');
            setInterval(function(){
                opera.postError('interval_upd3');
            }, 1000);
            opera.postError('after_submit2');
            return false;
        }
    </script>
</head>
<body>
    <form name="form1" id="form1" action="" method="post" enctype="multipart/form-data">
        <input type="file" name="file1" /> <br />

        <input type="button" onclick="sendForm()" value="Opera: Send form!" />
    </form>
</body>

</html>



--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
нуп
Дата 10.8.2011, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Вы понимаете что происходит перезагрузка страницы после сабмита? 
PM MAIL   Вверх
s0lman
Дата 10.8.2011, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: нет
Всего: 29



Угу... прикол в том, что в других броузерах во время сабмита отрабатывает таймер (если прикрепленный файл достаточно большой), а в опере - нет. Пичалька)


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
нуп
Дата 10.8.2011, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: 13
Всего: 33



Такое негде потестить. Попробуйте вызывать таймер до или после функции sendForm smile  может прокатит
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1035 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.