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 相关文章推荐
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
vue自定义组件实现双向绑定
Jan 13 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
浅谈Vue的computed计算属性
Mar 21 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
vue.js 使用原生js实现轮播图
Apr 26 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
基于initPHP的框架介绍
2013/04/18 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
党风廉设责任书
2014/04/16 职场文书
新书发布会策划方案
2014/06/09 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
医院党建工作总结2015
2015/05/26 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python
pandas中对文本类型数据的处理小结
2021/11/01 Python
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android