在location.reload()完成后触发jQuery函数

时间:2009-12-24 01:41:24

标签: jquery ruby-on-rails jquery-ui-dialog unobtrusive-javascript

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

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

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

2 个答案:

答案 0 :(得分:3)

你不能。

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

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

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

答案 1 :(得分:0)

也许您可以尝试通过追加?var=value来传递变量。

然后在你的

$(document).ready(function() {

}); 

检查url中的参数是否存在,执行jQuery的delay()函数?

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