jQuery在页面之间传递数据

时间:2012-09-01 09:27:48

标签: jquery

我是jQuery的新手。有没有办法通过jQuery在另一个页面中检索booked的值?

$(document).ready(function() {
    $(".active").click(function() {
        var booked=$(this).val();
        confirm(booked);
    });
});

4 个答案:

答案 0 :(得分:6)

如果纯粹是在客户端,请使用cookies或HTML5 localStorage

localStorage.setItem('bookedStatus' + customerId, true);

如果数据已经提交给服务器,则使用ajax

$.get('/site/getBookingStatus?customerId=' + customerId, function(data){
   alert(data);
});

答案 1 :(得分:2)

或者,如果这是一个简单的字符串,您可以在导航到另一个页面时附加页面的URL。如果这是安全数据,您可以加密字符串并附加。

您的网址为:example.com/nextPage?x=booked

在下一页中,您可以通过解码它来获取字符串:

var encodedData = window.location.href.split('=')[1];
var bookedValue = decodeURI(encodedData);

如果您已加密脚本,则必须在下一页解密。

答案 2 :(得分:1)

localStorage在移动浏览器上无效。我已经放弃了尝试让localStorage在iPhone / Safari上工作。如果您没有传递太多数据,那么一个简单的解决方案是使用通常的?param = 语法将数据附加到您导航到的网址:

// set your data in the source page 
function set_url_data(go_to_url, data) {
  new_url = go_to_url + '?data=' + data;
  window.location.href = new_url;
}

// parse your data in the destination page 
function grab_data_from_url() {
  url = window.location.href;
  data = url.split('data=').pop();
  return(data)
}

答案 3 :(得分:0)

如果Cookie位于同一个域中,您可以尝试使用Cookie。

您需要使用jQuery cookie plugin(以解决跨浏览器问题)。

你应该尝试这样做:

  1. 在第1页生成变量。
  2. 将此变量另存为会话cookie。
  3. 在第2页,您现在可以访问会话cookie。
  4. 如果用户在未访问第1页的情况下直接访问了第2页,则应设置默认值。
  5. 完成!