0

我有一个 Rails 应用程序,允许用户通过 jQuery 模态表单登录。登录后,我使用 location.reload() 刷新原始页面。

此时,我正在尝试创建一个新的 jQuery 对话框。如何仅在 location.reload() 执行完毕后打开对话框?

现在对话框在 location.reload() 完成之前加载。这导致对话框消失。

4

2 回答 2

3

你不能。

调用location.reload()将重新加载整个页面。完成后,原始页面中的 Javascript 就完全消失了。

如果您无论如何都要重新加载整个页面,那么首先使用 AJAX 有什么意义呢?
您应该使用常规回发执行登录,然后添加发出 Javascript 的服务器端代码以在登录回发中显示对话框。

您可以创建一个小的弹出窗口,用于window.opener在重新加载后与原始页面进行通信,但这是一个非常丑陋的想法,并且容易受到弹出窗口阻止程序的攻击。

于 2009-12-24T01:47:42.317 回答
0

也许您可以尝试通过附加?var=value.

然后在你的

$(document).ready(function() {

}); 

检查 url 中的那个参数,如果有,执行 jQuery 的delay()函数?

不确定这是否适用于 Rails,因为我主要使用 PHP 和 Drupal。祝你好运!

于 2010-05-07T07:19:26.677 回答