setTimeout. Что не так делаю ?
Добрый день.
Имеем: <form> ..... ..... <input type='submit' value='Сохр.' name='svtr' style='width:40px; height:18px; font-size:9px;' onclick='closetrtimer()' /> </form> function closetrtimer() { window.setTimeout("closetr();",1000); } function closetr() { if (confirm("Закончить редактирование?")) { return true; } else { return false; } } Хочу, что б при клике на кнопку отправлялась форма и через секунду вылезал alert. Данный пример не делает вообще нечего: т.е. форма уходит, а js сообщения нет. В консоли ошибок пусто, браузер opera. Где ошибка ? |
Весь код покажите.
|
Ээм, пардон, весь код чего ?
Форма там немаленькая, js скрипты подключаются отдельным файлом, если вы это имеете в виду. |
Я имею в виду, что приведённый код на первый взгляд рабочий. Но неизвестно, что там вокруг него. Сделайте минимальный неработающий пример и покажите его. Хотя, скорее всего, в процессе создания этого примера вы сами найдёте ошибку.
|
Если сразу вызывать 2ю функцию, то все ок, скрипт работает. Через функцию с таймером - не работает.
Т.е. onclick='closetr()' - все ок, onclick='closetrtimer()' - никакой реакции. |
Мысль посетила: мы жмем кнопку, запускается таймер, форма уходит на обработку, страница обновляется. Вот при этом обновлении мож таймер както сбрасывается ? В этом может дело ?:)
|
Конечно при перезагрузке страницы скрипты тоже перезагружаются.
|
Ок, тогда с самого начала все расскажу:
Есть два файла - 1.php и 2.php. В 1.php при нажатии на кнопку создаем окно, куда грузим 2.php: <input type='button' value='Редактировать' onclick="window.open('2.php', 'wndname', 'параметры');" style='width:90px; height:15px; font-size:10px; margin:2px 0 0 5px;' /> В 2.php форма, которая описана в первом посте. Идея такая: в созданном окне "wndname", куда грузится 2.php, после совершенных манипуляций в форме и ее submit'a через секунду после этого должен вылазить confirm. Если жмем в нем ОК - редактируем форму дальше, жмем Отмену - окно закрывается, и та страница, с которой это окно было создано (т.е. 1.php), обновляется, т.е. происходит чтото типа document.location='1.php';. Вопросы: 1. Как реализовать запуск скрипта через секунду после submit'a формы; 2. Как реализовать обновление 1.php при закрытии 2.php ? |
Цитата:
b. Выставлять таймер в родительском окне. c. Возможно ещё варианты в зависимости от конкретных условий. Цитата:
var w = window.open(); (function() { if (w) { setTimeout(arguments.callee, 50); } else { alert('Окно закрылось'); } })(); |
Ок, раз все так сложно, пойду другим путем :)
1.php - <input type='button' value='Редактировать' onclick="funcname();" style='width:90px; height:15px; font-size:10px; margin:2px 0 0 5px;' /> function funcname() { var newwindow = window.open('2.php', 'wndname', 'параметры'); newwindow.focus(); } Т.е. просто даже при наличии окна wndname при клике на кнопку оно вылазит поверх остальных вкладок. Фишка в том, что вот это вот newwindow.focus(); не работает :( Что тут не так ? Еще такой вопрос: какими средствами создается окно, которое как бы блокирует все остальные вкладки до закрытия самого себя ? |
Часовой пояс GMT +3, время: 17:18. |