вызвать функцию jQuery после завершения location.reload () - PullRequest
0 голосов
/ 24 декабря 2009

У меня есть приложение Rails, которое позволяет пользователям войти через модальную форму jQuery. После входа в систему я обновляю исходную страницу с помощью location.reload ().

На данный момент я пытаюсь создать новый диалог jQuery. Как я могу открыть диалог только после того, как location.reload () завершит выполнение?

Прямо сейчас диалог загружается до того, как location.reload () завершено. Это приводит к исчезновению диалога.

Ответы [ 2 ]

3 голосов
/ 24 декабря 2009

Вы не можете.

Вызов location.reload() перезагрузит всю страницу. Как только он закончится, Javascript с исходной страницы полностью исчезнет.

Если вы все равно перезагружаете всю страницу, какой смысл в первую очередь использовать AJAX?
Вы должны выполнить вход с использованием обычной обратной передачи, а затем добавить серверный код, который генерирует Javascript, чтобы отобразить диалоговое окно при обратной передаче.

Вы можете создать небольшое всплывающее окно, которое использует window.opener для связи с исходной страницей после ее перезагрузки, но это очень уродливая идея, и она будет уязвима для блокировщиков всплывающих окон.

0 голосов
/ 07 мая 2010

Возможно, вы можете попробовать передать переменную через URL, добавив ?var=value.

Тогда в вашем

$(document).ready(function() {

}); 

проверить этот параметр в URL и, если он есть, выполнить функцию jQuery delay()?

Не уверен, что это будет работать с Rails, так как я в основном использую PHP и Drupal. Удачи!

...