vue打开其他项目页面并传入数据详解


Posted in Vue.js onNovember 25, 2020

1.不跨域,携带sessionstorage打开

主页面,存储sessionstorage后,打开页面

let data = {
	text:'我是数据'
};
let isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)?true:false;

sessionStorage.setItem('information',JSON.stringify(data));
//ios不能打开新窗口,所以改为移动端在原本页面打开,pc打开新窗口
window.open(window.location.protocol + "//" + window.location.host + reportUrl, isMobile?'_self':'_blank');

子页面

var date = JSON.parse(sessionStorage.getItem('information'));

2.跨域,iframe通信

跨域的情况下,无法携带sessionstorage,通过iframe的postMessage通信机制传递数据;

不跨域也可以用,但更建议使用第一种,比较丝滑~

主页面,写入url,加载完成后,发送数据

<iframe id='iframe' class="iframe" v-if="src" ref="iframe" :src="src"></iframe>

let data = {
	text:'我是数据'
};
this.src = url
this.$nextTick(()=>{
	document.getElementById('iframe').onload=()=>{
		document.getElementById('iframe').contentWindow.postMessage({
			type:'preview',
			data:data
		},this.src)
		document.getElementById('iframe').onload=null;
 }
})

子页面,执行监听,created、mounted都可以

created() {
	window.addEventListener('message',(event)=>{
	 console.log(event.data.type)
	 if(event.data&&event.data.type=='preview'){
	  console.log(event.data.data)
	  let data = event.data.data
	 }
	 }, false);
}

总结

到此这篇关于vue打开其他项目页面并传入数据的文章就介绍到这了,更多相关vue打开项目页面并传数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
vue3 watch和watchEffect的使用以及有哪些区别
Jan 26 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
详细聊聊vue中组件的props属性
Nov 02 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 Vue.js
VUE递归树形实现多级列表
Jul 15 Vue.js
Vue开发中常见的套路和技巧总结
Nov 24 #Vue.js
浅析VUE防抖与节流
Nov 24 #Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 #Vue.js
Vue 的 v-model用法实例
Nov 23 #Vue.js
VUE+Element实现增删改查的示例源码
Nov 23 #Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 #Vue.js
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 #Vue.js
You might like
PHP 编程请选择正确的文本编辑软件
2006/12/21 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
windows系统下Python环境搭建教程
2017/03/28 Python
python 使用get_argument获取url query参数
2017/04/28 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
python代码区分大小写吗
2020/06/17 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
遇到的Mysql的面试题
2014/06/29 面试题
平安工地汇报材料
2014/08/19 职场文书
班主任2015新年寄语
2014/12/08 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis
Python语言规范之Pylint的详细用法
2021/06/24 Python
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers