利用window.name实现页面跳转之间的数据传递

先描述一下需求情景
有一个生成节日贺卡的页面,a页面最后部分用来填写用户名和贺卡内容,点击提交按钮跳转到贺卡页面b,b页面显示的就是a页面填写的内容和用户名。(a页面和b页面是没有跨域的…)

一开始我只想到用ajax提交数据来实现,不过一想,是直接提交到b页面吗?一时之间,我也不知道该如何进行页面跳转之间的数据传递。百度许久,终于看到window.name这个方法。
ps:今天谷歌回来了吗? 并没有

实现过程

a页面中表单提交的方法:
$("#submit").click(function(){
    var nickname = $("#nickname").val(); //获取填写的用户名
    var message = $("#message").val(); //获取填写的贺卡内容
    var jsonData = {"nickname":nickname,"message":message}; //转化为json格式
    window.name = JSON.stringify(jsonData); //window.name只接受字符串格式,所以需要把json转换一下
    window.location = "b.html"; //跳转到b页面
}
b页面中获取数据的方法:
var jsonData = JSON.parse(window.name); //将window.name转化为json对象
$(".signame").text(jsonData.nickname); //填充数据
$(".message").text(jsonData.message); //填充数据

这样就完成了,挺简单的吧.
当然因为我这个需求并不要求跨域,所以可以这样用。、
如果你的需求需要跨域的话,可能就不能这样简单的使用了。

参考文章:

  1. 利用window.name+iframe跨域获取数据详解

  2. 「JavaScript」四种跨域方式详解

    原文作者:朕知道了
    原文地址: https://segmentfault.com/a/1190000003877128
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞