如何将变量从当前窗口传递到另一个窗口

时间:2017-09-11 03:29:33

标签: javascript jquery

第一页

<button onclick="refereceid_Transfer()">Try it</button>

<script>


function refereceid_Transfer() {
alert('test');
var referenceid = "jggd154278";
referenceid = btoa(referenceid);
//sessionStorage.setItem("sent", referenceid); 
 window.open("second.jsp", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");
}

</script>

第二页

<p id="s1"></p>

<script>
$(document).ready(function(){
  // var a = sessionStorage.getItem("sent",id);
alert(a);
});  
</script>

我需要将我的引用ID从一个窗口传递到另一个窗口。我尝试使用会话存储和本地存储来传递变量,我在两种情况下都失败了。是否有新的建议,我可以将我的参考ID传递给新窗口。

谢谢

2 个答案:

答案 0 :(得分:4)

您可以尝试localStorage

添加您要在另一页上传递的项目:

localStorage.setItem("key", "value");

在另一个页面上,您可以通过以下方式访问:

localStorage.getItem("key");

您也可以在 localStorage 中存储对象数据。请注意,如果您要存储一些敏感信息,请清除 localStorage

更简单的选择是使用查询参数,但我认为你不能使用它。

或者您可以使用 sessionStorage

sessionStorage.setItem("key", data);
window.open("page_url","_blank");

在另一页上使用:

$(document).ready(function(){        
    var data = sessionStorage.getItem("key");
    console.dir(data);
});

注意 sessionStorage对象等于localStorage对象,但它只存储一个会话的数据。当用户关闭特定浏览器选项卡时,将删除数据。

答案 1 :(得分:3)

您可以使用本地存储执行此操作,也可以在查询参数中传递它并在第2页读取查询参数。 如果您正在进行服务器端渲染,则还可以使用会话存储。