页面传参-记录

场景:

提示:可以理解为在两个系统之间传参
需要在一个系统中打开一个外部链接并传递参数的问题


描述

尝试了opener和postMessage后都没有成功,改用了这个笨办法,只能传一个参数,且格式有所要求,记录一下,后面如果学到更好的方法回来更新文档,代码如下:

// a页面
window.open(b页面地址, 传参);

// b页面
console.log(window.name); // name即a页面传参数据

其他

同时记录一下opener和postMessage使用方法

opener

链接: 菜鸟教程
菜鸟教程里的定义为:
opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用。
当使用window.open()打开一个窗口,可以使用此属性返回来自目标窗口源(父)窗口的详细信息。
示例如下:

function openWindow () {
	const myWindow = window.open('','','width=200,height=100');
	myWindow.document.write('<p>这是我的窗口</p>');
	myWindow.focus();
	myWindow.opener.document.write('<p>这个是源窗口!</p>');
}
openWindow ()

postMessage

链接: 菜鸟教程
菜鸟教程里的定义为:
postMessage() 方法用于安全地实现跨源通信。
语法如下:

otherWindow.postMessage(message, targetOrigin, [transfer]);
参数说明
otherWindow其他窗口的一个引用,比如 iframe 的 contentWindow 属性、执行 window.open 返回的窗口对象、或者是命名过或数值索引的 window.frames。
message将要发送到其他 window的数据。
targetOrigin指定哪些窗口能接收到消息事件,其值可以是 *(表示无限制)或者一个 URI。
transfer可选,是一串和 message 同时传递的 Transferable 对象。这些对象的所有权将被转移给消息的接收方,而发送一方将不再保有所有权。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值