扫码关注官方订阅号
问题:如何实现浏览器页面A中传递一个数据到页面B,然后页面B处理此数据之后再次返回页面A?要求:求各位大佬详细的解答一下,或者推荐几篇不错的文章。开始的时候以为这个问题属于跨域问题,因为自学入门的时间比较短,所以也不是很了解,可是查了一下跨域到底是什么之后发现好像不是跨域问题,所以求大佬解答一下。
业精于勤,荒于嬉;行成于思,毁于随。
postMessage API 支持两个页面跨域;只能传递字符串数据;参考 window.open;
直接引用 适用于两个页面在同一域;可以传递对象数据(对象数据使用 instanceof 做类型判断时有坑);参考 window.open;
WebSocket 服务器中转 需要页面都与服务器建立 WebSockets 连接;支持跨域;参考 WebSocket
localStorage 事件 要求两页面在同一域;数据可以通过 localStorage 传递;参考 localStorage 的 'storage' 事件;
...
其实方案不少,关键看需求。
单独在两个浏览器页面通信?一般来说会有个后台处理的过程吧,比如说表单提交:先在A页面填写数据,然后发送到后台处理,处理完毕后后台可以指定一个参数告诉前端要做什么,(比如去转到哪个页面)
如果你就是想在页面中传递数据,可以用js 的window.location.href='目标url?key=value&&key=value'这种形式传递,然后在B页面获取浏览器的loaction对象,解析出参数,根据自己的需要处理完毕再用window.location.href跳回去原来的页面。只是这种做法是很少见的,因为实际意义不大。
window.location.href='目标url?key=value&&key=value'
window.location.href
纯粹使用前端技术是做不到的,现代浏览器安全方面考量很多,页面之间都是隔离的,还是要靠后端实现:举一个比较蠢的例子:浏览器A页面登录163邮箱发一封邮件,B页面登录QQ邮箱收到这份邮件。
如果AB有嵌套关系,可以用window.postMessage
window.postMessage
对任意页面好像没有不需中转的方法
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
postMessage API
支持两个页面跨域;只能传递字符串数据;参考 window.open;
直接引用
适用于两个页面在同一域;可以传递对象数据(对象数据使用 instanceof 做类型判断时有坑);参考 window.open;
WebSocket 服务器中转
需要页面都与服务器建立 WebSockets 连接;支持跨域;参考 WebSocket
localStorage 事件
要求两页面在同一域;数据可以通过 localStorage 传递;参考 localStorage 的 'storage' 事件;
...
其实方案不少,关键看需求。
单独在两个浏览器页面通信?一般来说会有个后台处理的过程吧,比如说表单提交:先在A页面填写数据,然后发送到后台处理,处理完毕后后台可以指定一个参数告诉前端要做什么,(比如去转到哪个页面)
如果你就是想在页面中传递数据,可以用js 的
window.location.href='目标url?key=value&&key=value'这种形式传递,然后在B页面获取浏览器的loaction对象,解析出参数,根据自己的需要处理完毕再用window.location.href跳回去原来的页面。只是这种做法是很少见的,因为实际意义不大。纯粹使用前端技术是做不到的,现代浏览器安全方面考量很多,页面之间都是隔离的,还是要靠后端实现:举一个比较蠢的例子:
浏览器A页面登录163邮箱发一封邮件,B页面登录QQ邮箱收到这份邮件。
如果AB有嵌套关系,可以用
window.postMessage对任意页面好像没有不需中转的方法