javascript - 浏览器的两个页面之间通信的问题
迷茫
迷茫 2017-04-11 12:52:12
[JavaScript讨论组]

问题:如何实现浏览器页面A中传递一个数据到页面B,然后页面B处理此数据之后再次返回页面A?
要求:求各位大佬详细的解答一下,或者推荐几篇不错的文章。
开始的时候以为这个问题属于跨域问题,因为自学入门的时间比较短,所以也不是很了解,可是查了一下跨域到底是什么之后发现好像不是跨域问题,所以求大佬解答一下。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(4)
阿神

postMessage API
支持两个页面跨域;只能传递字符串数据;参考 window.open;

直接引用
适用于两个页面在同一域;可以传递对象数据(对象数据使用 instanceof 做类型判断时有坑);参考 window.open;

WebSocket 服务器中转
需要页面都与服务器建立 WebSockets 连接;支持跨域;参考 WebSocket

localStorage 事件
要求两页面在同一域;数据可以通过 localStorage 传递;参考 localStorage 的 'storage' 事件;

...

其实方案不少,关键看需求。

PHP中文网

单独在两个浏览器页面通信?一般来说会有个后台处理的过程吧,比如说表单提交:先在A页面填写数据,然后发送到后台处理,处理完毕后后台可以指定一个参数告诉前端要做什么,(比如去转到哪个页面)

如果你就是想在页面中传递数据,可以用js 的window.location.href='目标url?key=value&&key=value'这种形式传递,然后在B页面获取浏览器的loaction对象,解析出参数,根据自己的需要处理完毕再用window.location.href跳回去原来的页面。只是这种做法是很少见的,因为实际意义不大。

PHP中文网

纯粹使用前端技术是做不到的,现代浏览器安全方面考量很多,页面之间都是隔离的,还是要靠后端实现:举一个比较蠢的例子:
浏览器A页面登录163邮箱发一封邮件,B页面登录QQ邮箱收到这份邮件。

迷茫

如果AB有嵌套关系,可以用window.postMessage

对任意页面好像没有不需中转的方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号