1

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

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

我的第一个想法是

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

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

这甚至可能吗?

4

4 回答 4

4

您应该在 URL 上附加一个#datayouneed,并通过新页面上的 javascript 读取 URL 的哈希部分。

于 2012-04-26T19:57:28.037 回答
2

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

  1. 发布到新页面
  2. 通过查询字符串传递它
  3. 将其加载到 cookie 中
  4. 将其存储在会话变量中

除了这几种方法之外,您将没有很多其他选项可以将您的数据从 A 转移到 B。最后两个选项只有在用户留在您的域/服务器上时才真正可行。

于 2012-04-26T19:57:19.133 回答
1

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

于 2012-04-26T19:58:57.257 回答
0

您可以在当前 url 上设置 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
}

您可以参考此处以获取有关哈希的更多信息

于 2012-04-26T20:01:49.037 回答