js实现页面传输

传输数据的页面

//跳转到详情页matte-lipstick.html
$(".product-pic").each(function(index){
	$(this).click(function () {
		myAjax("get","js/matte-lipstick.json","",true,callBack);
		function callBack(str){
			let myJson = JSON.parse(str);
			var cName = myJson[index].chineseName;//中文名
			var eName = myJson[index].englishName;//英文名
			var productColor = myJson[index].color;//色号
			var pic = myJson[index].pic;//图片路径
			var quality = myJson[index].quality;//款式
			var fontColor = myJson[index].fontColor;//字体颜色
			location.href='matte-lipstick.html?cName='+cName+'&eName=' + encodeURI(eName)+'&productColor=' + encodeURI(productColor)+'&pic=' + encodeURI(pic)+'&quality=' + encodeURI(quality)+'&fontColor=' + encodeURI(fontColor);
		}
	})
})

接收数据的界面
其实就是通过location.href把你需要传输的内容拼接到url地址栏里再通过location.search获取到?后面的值然后通过&专成数组这样你就可以得到你需要的数据了

//获取bullet.html传过来的数据
function GetRequest(){
    var url = location.search; //获取url中"?"符后的字串  
    var theRequest = new Object();  
    if (url.indexOf("?") != -1) {  
        var str = url.substr(1);  
        strs = str.split("&");
        //截取&后循环
        for (var i = 0; i < strs.length; i++) {  
            theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);  //decodeURI()解决中文乱码
        }  
    }
	$(".particulars-introduce").children().eq(0).text(theRequest.cName);//中文名
	$(".particulars-introduce").children().eq(1).text(theRequest.eName);//英文名
	$(".particulars-introduce").children().eq(3).text(theRequest.productColor);//色号
	$(".particulars-introduce").children().eq(4).text(theRequest.productColor);//色号
	var oFontColor = "#"+theRequest.fontColor//字体颜色
	$(".particulars-introduce").children().eq(4).css("color",oFontColor);
	$(".introduce-quality-span").text(theRequest.quality);//款式
	$(".small-box").css("background","url("+theRequest.pic+") no-repeat");//背景图
	$(".big-box").css("background","url("+theRequest.pic+") no-repeat");//放大镜背景图
	$(".big-box").css("backgroundSize","1216px 1140px");
}
GetRequest();
在不同页面之间传输数据,有多种方法可以实现。以下是其中几种常见的方法: 1. 使用localStorage或sessionStorage localStorage和sessionStorage都是H5提供的本地存储API,可以在浏览器中存储键值对数据。它们的区别在于localStorage数据会一直保存,直到手动清除,而sessionStorage数据只在当前会话中有效,关闭浏览器窗口后会被清除。因此,如果需要在不同页面之间共享数据,可以使用localStorage。 假设在页面A中需要传输数据到页面B,可以在页面A中使用以下代码存储数据: ```javascript localStorage.setItem('data', 'hello world'); ``` 在页面B中获取数据: ```javascript var data = localStorage.getItem('data'); ``` 需要注意的是,如果在同一浏览器中打开的多个窗口都需要访问同一个localStorage,那么需要注意不同窗口中访问localStorage时的同步问题。 2. 使用URL参数传递数据 在URL中传递参数是一种常用的传输数据的方式。在页面A中,可以通过URL参数的形式传递数据到页面B: ```javascript var data = 'hello world'; window.open('pageB.html?data=' + encodeURIComponent(data)); ``` 在页面B中获取数据: ```javascript var data = decodeURIComponent(location.search.substring(1).split('=')[1]); ``` 需要注意的是,URL参数传递的数据大小有限制,不同浏览器的限制大小也不同,因此在传输数据时需要注意大小限制。 3. 使用cookie 使用cookie也可以在不同页面之间传输数据。在页面A中,可以设置cookie: ```javascript document.cookie = 'data=hello world'; ``` 在页面B中获取数据: ```javascript var data = document.cookie.split('; ').find(row => row.startsWith('data=')).split('=')[1]; ``` 需要注意的是,cookie也有大小限制,而且cookie的生命周期可以自行设置,需要在存储时设置cookie的过期时间。此外,cookie还需要注意跨域问题,只有在同一域名下才能访问同一cookie。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值