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的异步更新实现原理
Dec 22 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
vue 页面跳转的实现方式
Jan 12 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
vue实现可拖拽的dialog弹框
May 13 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 Vue.js
如何vue使用el-table遍历循环表头和表体数据
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
PHP扩展CURL的用法详解
2014/06/20 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
滚动条的监听与内容随着滚动条动态加载的实现
2017/02/08 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python常用小技巧总结
2015/06/01 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
python实现弹窗祝福效果
2019/04/07 Python
优秀毕业生推荐信
2013/11/02 职场文书
会计主管岗位职责
2014/01/03 职场文书
合伙协议书
2014/04/23 职场文书
小学课外活动总结
2014/07/09 职场文书
公司领导班子对照材料
2014/08/18 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python