我有一个 Rails 应用程序,允许用户通过 jQuery 模态表单登录。登录后,我使用 location.reload() 刷新原始页面。
此时,我正在尝试创建一个新的 jQuery 对话框。如何仅在 location.reload() 执行完毕后打开对话框?
现在对话框在 location.reload() 完成之前加载。这导致对话框消失。
我有一个 Rails 应用程序,允许用户通过 jQuery 模态表单登录。登录后,我使用 location.reload() 刷新原始页面。
此时,我正在尝试创建一个新的 jQuery 对话框。如何仅在 location.reload() 执行完毕后打开对话框?
现在对话框在 location.reload() 完成之前加载。这导致对话框消失。
你不能。
调用location.reload()
将重新加载整个页面。完成后,原始页面中的 Javascript 就完全消失了。
如果您无论如何都要重新加载整个页面,那么首先使用 AJAX 有什么意义呢?
您应该使用常规回发执行登录,然后添加发出 Javascript 的服务器端代码以在登录回发中显示对话框。
您可以创建一个小的弹出窗口,用于window.opener
在重新加载后与原始页面进行通信,但这是一个非常丑陋的想法,并且容易受到弹出窗口阻止程序的攻击。
也许您可以尝试通过附加?var=value
.
然后在你的
$(document).ready(function() {
});
检查 url 中的那个参数,如果有,执行 jQuery 的delay()
函数?
不确定这是否适用于 Rails,因为我主要使用 PHP 和 Drupal。祝你好运!