html传参,另一个页面接收后变[object],怎么办

-一个大坑 2018-12-05 11:15:30

var path = [];
path.push({lnglat:[116.303843, 39.983412]});//起点
path.push({lnglat:[116.321354, 39.896436]});//途径
path.push({lnglat:[116.407012, 39.992093]});//终点

layer.open({
type: 2,
id: 'appformInfoView',
title: '地图页面',
area: ['900px', '500px'], //宽高
content: 'http://localhost:48791/TMS/PathPlanning.html?path='+path
})

调用地图接口,传坐标数组过去,接收后变成3个object,要怎么传?
...全文
1034 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rui_Yia 2020-10-23
  • 打赏
  • 举报
回复
引用 6 楼 天际的海浪 的回复:
content:  'http://localhost:48791/TMS/PathPlanning.html?path='+encodeURIComponent(JSON.stringify(path)) 接收时用 var path= JSON.parse(decodeURIComponent(arrhref[1])) 注意,url的长度有限,一般不要超过2000个字符
我用了这种方法传过去中文会乱码,在进行一次编码解码穿过去的值就为【object object】请问这个该怎样解决呢
-一个大坑 2018-12-06
  • 打赏
  • 举报
回复
引用 6 楼 天际的海浪 的回复:
content:  'http://localhost:48791/TMS/PathPlanning.html?path='+encodeURIComponent(JSON.stringify(path))
接收时用
var path= JSON.parse(decodeURIComponent(arrhref[1]))

注意,url的长度有限,一般不要超过2000个字符

我去试试,不会很长,一般就2-3个数组,最长不超过5个。不然我就后台取了
-一个大坑 2018-12-06
  • 打赏
  • 举报
回复
引用 4 楼 讨厌走开啦 的回复:
[quote=引用 3 楼 -一个大坑 的回复:]
[quote=引用 1 楼 風灬雲 的回复:]

layer.open({
type: 2,
id: 'appformInfoView',
title: '地图页面',
area: ['900px', '500px'], //宽高
content: 'http://localhost:48791/TMS/PathPlanning.html?path='+JSON.stringify(path)
})

url后面只能接字符串;
跳转后的页面取到值后再调用JSON.parse()

另一个网页接收怎么接收,用这个接收转换后的不行,到“就断了
var Ohref=window.location.href;
var arrhref=Ohref.split("?path=");
var path= JSON.parse(arrhref[1])[/quote]

url还有长度限制,万一json大一点就会传不完整,为什么不考虑让PathPlanning.html从后台再取一次呢。[/quote]
可以从后台取,但是也要传值给后台进行查询,不然后台不知道该返回什么值
Hello World, 2018-12-06
  • 打赏
  • 举报
回复
Hello World, 2018-12-06
  • 打赏
  • 举报
回复
在子页面通过parent对象来取值,要取什么都可以:
父页面:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="../css/layui.css" rel="stylesheet" />
</head>
<body>
<input type="button" value="Test" onclick="openLayer();" />
</body>
</html>
<script src="../layui.all.js"></script>
<script>
function getParam() {
return 'parentParam';
}
function openLayer() {
var layer = layui.layer;
layer.open({
type: 2,
id: 'TestLayer',
title: 'Test',
area: ['300px', '200px'], //宽高
content: 'Child.html'
})
}
</script>

子页面:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body onload="getParam();">
</body>
</html>
<script>
function getParam() {
alert(parent.getParam());
}
</script>
-一个大坑 2018-12-05
  • 打赏
  • 举报
回复
引用 1 楼 風灬雲 的回复:

layer.open({
type: 2,
id: 'appformInfoView',
title: '地图页面',
area: ['900px', '500px'], //宽高
content: 'http://localhost:48791/TMS/PathPlanning.html?path='+JSON.stringify(path)
})

url后面只能接字符串;
跳转后的页面取到值后再调用JSON.parse()

另一个网页接收怎么接收,用这个接收转换后的不行,到“就断了
var Ohref=window.location.href;
var arrhref=Ohref.split("?path=");
var path= JSON.parse(arrhref[1])
風灬雲 2018-12-05
  • 打赏
  • 举报
回复
不过这样的话,参数全暴露在用户的眼皮下面了,所以没到迫不得已尽量不要用url传参,可以用本地缓存sessionStorage
風灬雲 2018-12-05
  • 打赏
  • 举报
回复

layer.open({
type: 2,
id: 'appformInfoView',
title: '地图页面',
area: ['900px', '500px'], //宽高
content: 'http://localhost:48791/TMS/PathPlanning.html?path='+JSON.stringify(path)
})

url后面只能接字符串;
跳转后的页面取到值后再调用JSON.parse()
天际的海浪 2018-12-05
  • 打赏
  • 举报
回复
content:  'http://localhost:48791/TMS/PathPlanning.html?path='+encodeURIComponent(JSON.stringify(path)) 接收时用 var path= JSON.parse(decodeURIComponent(arrhref[1])) 注意,url的长度有限,一般不要超过2000个字符
scscms太阳光 2018-12-05
  • 打赏
  • 举报
回复
这个时间是html5的postMessage出场了
讨厌走开啦 2018-12-05
  • 打赏
  • 举报
回复
引用 3 楼 -一个大坑 的回复:
[quote=引用 1 楼 風灬雲 的回复:]

layer.open({
                type: 2,
                id: 'appformInfoView',
                title: '地图页面',
                area: ['900px', '500px'], //宽高
                content:  'http://localhost:48791/TMS/PathPlanning.html?path='+JSON.stringify(path)
            })
url后面只能接字符串; 跳转后的页面取到值后再调用JSON.parse()
另一个网页接收怎么接收,用这个接收转换后的不行,到“就断了 var Ohref=window.location.href; var arrhref=Ohref.split("?path="); var path= JSON.parse(arrhref[1])[/quote] url还有长度限制,万一json大一点就会传不完整,为什么不考虑让PathPlanning.html从后台再取一次呢。

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧