在jQuery中window.location更改后文档准备就绪

时间:2012-04-26 19:54:55

标签: jquery

我正在使用window.location.replace()重定向到新网页(与原始网页相同的域名)。但是,我需要在重定向完成后运行一些jquery代码。我不能简单地嵌入我想在目标页面上运行的代码,因为它需要我在当前上下文中拥有的数据。

有没有办法在新页面上设置类似于document.ready的触发器?

我的第一个想法是

window.location.replace(data.redirect);
$(document).ready(
  function() {
   (use data variable from outer context)
  }
);

但是这不起作用,因为该函数将在当前文档上运行。

这甚至可能吗?

4 个答案:

答案 0 :(得分:4)

您应该在网址上添加#datayouneed,并通过新页面上的javascript读取网址的哈希部分。

答案 1 :(得分:2)

如果无法将代码放到目标页面上,则无法在目标页面上执行代码。您可以通过以下几种方式获取数据:

  1. 发布到新页面
  2. 通过查询字符串
  3. 进行
  4. 将其加载到Cookie中
  5. 将其存储在会话变量
  6. 除了这几种方法之外,您将没有很多其他选项可以将您的数据从A转移到B.最后两个选项确实只有在用户停留在您的域/服务器上时才有可能。

答案 2 :(得分:1)

不,不可能,但如果你在同一个域名,你是否考虑过将这些信息放入cookie中?

答案 3 :(得分:0)

您可以在当前网址上设置has,然后在第二页上阅读。

在第一页;

window.location.href = "http://second.page#param1=val1&param2=val2"

在第二页中,您可以使用;

if(window.location.hash) {//Something like param1=val1&param2=val2
  //Do your action
} else {
  // Another action
}

您可以参考here了解有关哈希

的更多信息